docker 安装orcale11数据库

初次安装流程

1.拉取 oracle 11g 镜像(有6g,要等较长的时间):

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2.执行以下命令以创建并运行 Oracle 11g 容器(其中:30026为映射主机端口,8081为管理界面端口,helowin为Oracle数据库唯一实例ID,这些都是可以配置的):

docker run -d -p 30026:1521 -p 8081:8080 \
--name oracle_11g \
-e ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 \
-e ORACLE_SID=helowin \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

3.查看容器是否启动:

docker ps -a|grep oracle_11g

4.进入容器:

docker exec -it oracle_11g bash

5.依次执行(单步执行):

# 1. 切换至root用户(默认是oracle用户),密码为helowin
	su root
	# 2. 创建软链接
	ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
	# 3.切换回oracle用户
	su oracle
	# 4. 登录sql plus
	sqlplus / as sysdba
	## 4.1 修改system用户密码为system
	alter user system identified by system;
	## 4.2 修改sys用户密码为system
	alter user sys identified by system;
	## 4.3 新增一个测试用户(用户名:test,密码:test123);
	create user test identified by test123;
	## 4.4 将dba权限给内部管理员账号和密码
	grant connect,resource,dba to test;
	## 4.5 修改密码策略规则为:密码永不过期
	ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
	## 4.6 修改数据库最大连接数;
	alter system set processes=1000 scope=spfile;
	## 4.7 最后重启数据库;
	shutdown immediate;
	startup;
	# 5.退出
	exit

6.navicat验证,账号密码有3个:
• system/system
• sys/system
• test/test123

2.导出为镜像

1.docker images 找到oracle_11g的IMAGE ID

REPOSITORY                                                                TAG                 IMAGE ID            CREATED             SIZE
oracle_11g                                                                test                bc20dd23fb5a        3 hours ago         6.86GB
flannel/flannel                                                           v0.24.1             5309e5fd33b8        5 months ago        76MB
flannel/flannel-cni-plugin                                                v1.2.0              a55d1bad692b        11 months ago       8.04MB
busybox                                                                   latest              beae173ccac6        2 years ago         1.24MB
httpd                                                                     latest              dabbfbe0c57b        2 years ago         144MB
prom/node-exporter                                                        latest              1dbe0e931976        2 years ago         20.9MB
fortio/fortio                                                             latest_release      acf790649534        2 years ago         12.1MB

2.停止镜像

docker stop 7d7e07743b89

3.容器实例创建一个新的Docker镜像

docker commit  7d7e07743b89 oracle_11g:test

4.保存镜像文件为tar包(二选一)
当前目录

docker save -o oracle_11g.tar oracle_11g:test

指定目录(/var/tmp)

docker save -o /var/tmp/orcale_11g.tar oracle_11g:test

5.下载镜像并上传到linux服务器

6.docker load 命令来从tar文件重新加载镜像

docker load -i orcale_11g.tar

此时执行 docker images 命令可以看到被加载的镜像

docker images 

使用镜像

1.执行以下命令以创建并运行 Oracle 11g 容器(其中:30026为映射主机端口,8081为管理界面端口,helowin为Oracle数据库唯一实例ID,这些都是可以配置的):

docker run -d -p 30026:1521 -p 8081:8080 \
--name oracle_11g \
-e ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 \
-e ORACLE_SID=helowin \
oracle_11g:test

注意最后一行有变化,使用的是load的镜像

3.查看容器是否启动:

docker ps -a|grep oracle_11g

4.进入容器:

在这里插入代码片
docker exec -it oracle_11g bash

5.依次执行(单步执行):

# 1. 切换至root用户(默认是oracle用户),密码为helowin
	su root
	# 2. 创建软链接
	ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
	# 3.切换回oracle用户
	su oracle
	# 4. 登录sql plus
	sqlplus / as sysdba
	## 4.1 修改system用户密码为system
	alter user system identified by system;
	## 4.2 修改sys用户密码为system
	alter user sys identified by system;
	## 4.3 新增一个测试用户(用户名:test,密码:test123);
	create user test identified by test123;
	## 4.4 将dba权限给内部管理员账号和密码
	grant connect,resource,dba to test;
	## 4.5 修改密码策略规则为:密码永不过期
	ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
	## 4.6 修改数据库最大连接数;
	alter system set processes=1000 scope=spfile;
	## 4.7 最后重启数据库;
	shutdown immediate;
	startup;
	# 5.退出
	exit

6.navicat验证,账号密码有3个:
• system/system
• sys/system
• test/test123

4.1报错解决

SQL> alter user system identified by system;
SP2-0640: Not connected 

解决方法: 执行命令 sqlplus / as sysdba

SQL> alter user system identified by system;
alter user system identified by system
                                *
ERROR at line 1:
ORA-01109: database not open

解决方法: 执行命令 ALTER DATABASE OPEN;

SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
ERROR at line 1:
ORA-01507: database not mounted

解决方法: 执行命令 ALTER DATABASE MOUNT;

SQL> ALTER DATABASE MOUNT;
ALTER DATABASE MOUNT
*
ERROR at line 1:
ORA-00214: control file
'/home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl' version 864
inconsistent with file '/home/oracle/app/oracle/oradata/helowin/control01.ctl'
version 841

解决方法:

cd /home/oracle/app/oracle/oradata/helowin

ls 可以看到control01.ctl

复制文件:cp control01.ctl /home/oracle/app/oracle/flash_recovery_area/helowin
进入目录:cd /home/oracle/app/oracle/flash_recovery_area/helowin
重命名control02.ctl:cp control02.ctl control02.ctl.bkk
重命名control01.ctl为control02.ctl:cp control01.ctl control02.ctl

然后登录sql plus

sqlplus / as sysdba

SQL> 后面为要执行的内容,依次执行下面的sql。

SQL> ALTER DATABASE MOUNT;

Database altered.

SQL> ALTER DATABASE OPEN;

Database altered.

SQL> alter user system identified by system;

User altered.

SQL> alter user sys identified by system;

User altered.

SQL> create user test identified by test123;

User created.

SQL> grant connect,resource,dba to test;

Grant succeeded.

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

Profile altered.

SQL> alter system set processes=1000 scope=spfile;

System altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size                  2213776 bytes
Variable Size             402655344 bytes
Database Buffers         1191182336 bytes
Redo Buffers                7360512 bytes
Database mounted.
Database opened.
SQL> exit

可以使用上面的3个账号进行验证了。

相关推荐

  1. docker 安装orcale11数据库

    2024-07-13 15:58:02       22 阅读
  2. Docker安装Oracle11g和oracle增删改查

    2024-07-13 15:58:02       43 阅读
  3. Docker容器化运行Oracle 19c数据库

    2024-07-13 15:58:02       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 15:58:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 15:58:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 15:58:02       58 阅读
  4. Python语言-面向对象

    2024-07-13 15:58:02       69 阅读

热门阅读

  1. 缓冲区共享和同步dma_buf 之二

    2024-07-13 15:58:02       20 阅读
  2. Kylin的优缺点

    2024-07-13 15:58:02       19 阅读
  3. 【C语言】头文件命名详解 - 《铁头无敌 ! 》

    2024-07-13 15:58:02       21 阅读
  4. express

    express

    2024-07-13 15:58:02      20 阅读
  5. 【笔记】修改centos7过期的官方镜像资源

    2024-07-13 15:58:02       22 阅读
  6. Python:正则表达式相关整理

    2024-07-13 15:58:02       20 阅读