文章目录
docker 安装oracle11g
注意:下面的所有的操作都是在linux 里面直接输入命令
一、安装docker 容器
如果没有 /etc/docker/daemon.json这个文件,那么得创建一个
vi /etc/docker/daemon.json
{
“insecure-registries”: [“192.168.176.246:4000”]
}
然后重启docker,输入命令:systemctl restart docker
外网的下载地址:docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
pull
默认会下载最新版本 不用这个外网的,直接用下面老师的 192.168.176.246那个
然后输入这两行命令:docker pull 192.168.176.246:4000/ied/oracle_11g docker run -it -d -p 1521:1521 -v /data/oracle:/data/oracle --name oracle11g 192.168.176.246:4000/ied/oracle_11g
二、进入docker 容器
输入命令:docker exec -it oracle11g bash
输入命令:su root
切换到root管理员
输入密码:helowin
输入命令:vi /etc/profile
要进去添加几条配置
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
加载环境变量:source /etc/profile
创建软l连接:ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
切换到oracle用户:su oracle
下面这些可以选择修改,也可以选择不修改
sqlplus /nolog
--登录
conn /as sysdba
– 最高权限登录系统管理员,远程登录是不能用的
alter user system identified by system;
–修改system用户账号密码;
alter user sys identified by system;
–修改sys用户账号密码;
create user test identified by test;
– 创建内部管理员账号密码;
grant connect,resource,dba to test;
--将dba权限授权给内部管理员账号和密码;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
--修改密码规则策略为密码永不过期;(会出现坑,后面讲解)
alter system set processes=1000 scope=spfile;
–修改数据库最大连接数据;
修改了以上的信息后,需要重启数据库:
conn /as sysdba
shutdown immediate;
--关闭数据库
startup;
--启动数据库
exit
:退出软链接
当执行修改密码的时候出现:database not open
alter database mount;
alter database open;
1、关闭数据库
三、删除容器
如果之前安装的时候出现了错误,那么就把容器删了重新来
1、查看运行容器
docker ps
2、查看所有容器
docker ps -a
3、进入容器,其中字符串为容器的id
docker exec -it d27bd3008ad9 /bin/bash
4、停用全部运行中的容器
docker stop $(docker ps -q)
5、删除全部容器
docker rm $(docker ps -aq)
6、一条命令实现停用并且删除容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
四、navciat连接oracle数据库
主机:浮动ip地址
服务名:helowin(密码)
用户名:ciss
密码:123456
五、修改字符集
1、配置oracle字符集
下面的操作在navcait里面执行
查看oracle字符集:select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET';
2、修改Oracle字符集为ZHS16GBK
下面的操作都是在navcait里面进行操作
1、关闭数据库:shutdown immediate;
2、mount方式打开数据库:startup mount;
3、配置session:
ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; ALTER SYSTEM SET AQ_TM_PROCESSES=0;
4、启动数据库:alter database open;
5、修改字符集:ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
6、关闭,重新启动:shutdown immediate;
startup;
7、再次查看编码格式:select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET';
六、导入数据库
前面两个在navcait中操作,从第三个进入容器开始,linux里面操作
1、将数据文件上传到服务器的/data/oracle/目录中然后导入
查看DUMP目录是否存在:select * from dba_directories where DIRECTORY_NAME='DB_DUMP';
创建DUMP目录:create directory DB_DUMP as '/data/oracle/';
进入容器,使用oracle用户执行导入:docker exec -it oracle11g bash
source /etc/profile
保存配置文件
impdp ciss/123456@localhost/helowin DIRECTORY=DB_DUMP DUMPFILE=CISS_2021.dmp
导入完成后删除dmp文件:rm -rf /data/oracle/back_up/CISS_2021.dmp
2、如果提示ORA-39002错误,表示oracle账户没有/data/oracle目录的权限
进入容器:docker exec -it oracle11g bash
切换到root账号:su - root
输入密码:helowin
执行:chown -R oracle:oinstall /data/oracle
切换回oracle账号:su - oracle
然后再次导入即可