自学内容网 自学内容网

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个账号进行验证了。


原文地址:https://blog.csdn.net/u011067966/article/details/140380434

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!