Docker上安装Oracle并调整实例名

1.下载安装

/**
 * 1.拉取Oracle镜像; 2.启动Oracle容器
 */
# docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
# docker run -p 1521:1521 --name oracle11g -d  registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

/**
 * 1.查看正在运行的容器; 2.通过进程ID进入容器
 */
# docker ps
# docker exec -it docker_id /bin/bash

/**
 * 1.切换到root用户, 默认密码helowin
 * 2.修改环境变量, 编辑/etc/profile;使用vi 或者 echo命令
 *   在文件末尾添加以下内容:
 *     export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
 *     export ORACLE_SID=helowin
 *     export PATH=$ORACLE_HOME/bin:$PATH
 * 3.使配置生效
 */
# su - root
# echo  >> /etc/profile
# echo export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 >> /etc/profile
# echo export ORACLE_SID=helowin >> /etc/profile
# echo export PATH=$ORACLE_HOME/bin:$PATH >> /etc/profile
# source /etc/profile

/**
 * 1.退出Oracle镜像的root用户; 2.刷新配置; 3.连接Oracle
 */
# exit
# source ~/.bash_profile
# sqlplus / as sysdba

/**
 * 1.sys, system的密码修改; 2.设置密码永不过期; 3.切换到sys用户
 */
SQL> alter user sys identified by root;
SQL> alter user system identified by root;
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
SQL> conn sys/root

2.修改实例名,将helowin调整为orcl

/**
 * 1.关闭数据库
 * 2.退出数据库
 */
SQL> shutdown immediate
SQL> exit

/**
 * 1.切换到Oracle镜像的root用户
 * 2.修改环境变量
 *   将export ORACLE_SID=helowin 调整为 export ORACLE_SID=orcl
 * 3.使配置生效
 */
# su - root
# vi /etc/profile
# source /etc/profile

/**
 * 1.退出root用户
 * 2.修改/etc/oratab 和.bash_profile 文件, 将helowin修改为orcl;
 *     批量修改命令(:%s/helowin/orcl/g)
 * 3.查看环境变量进行确认
 */
# exit
# vi /etc/oratab
# vi ~/.bash_profile
# source ~/.bash_profile
# env|grep ORACLE

//修改$ORACLE_HOME/dbs目录下的文件名, 重新生成密码文件, 并将旧的密码文件删除
# cd $ORACLE_HOME/dbs
# mv hc_helowin.dat hc_orcl.dat
# mv lkHELOWIN lkORCL
# mv spfilehelowin.ora spfileorcl.ora
# orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=root entries=5 force=y
# rm -rf orapwhelowin

/**
 * 1.连接数据库; 2.启动数据库; 3.查看实例名; 4.备份控制文件;
 * 5.关闭数据库; 6.退出数据库
 */
# sqlplus / as sysdba
SQL> startup
SQL> select instance from v$thread;
SQL> alter database backup controlfile to trace resetlogs;
SQL> shutdown immediate
SQL> exit

/**
 * 1.根据旧的控制文件生成修改更新控制文件, 进入控制文件的备份目录($ORACLE_BASE/diag/rdbms/原实例名/新实例名/trace)
 * 2.根据日志文件文件alert_orcl.log(alert_实例名)找到控制备份文件进行复制
 *     通过查询功能, 在日志文件中找“alter database backup controlfile to trace resetlogs” 内容
 *     alter database backup controlfile to trace resetlogs
 *     Backup controlfile written to trace file /home/oracle/app/oracle/diag/rdbms/helowin/orcl/trace/orcl_ora_510.trc
 */
# cd $ORACLE_BASE/diag/rdbms/helowin/orcl/trace
# cp /home/oracle/app/oracle/diag/rdbms/helowin/orcl/trace/orcl_ora_510.trc orcl.sql

/**
 * 1.修改复制文件orcl.sql; set nu  是打开行数显示  :set nu!  关闭行数
 * 2.删除 STARTUP NOMOUNT 之前的内容
 * 3.删除 -- End of tempfile additions. 之后的内容
 * 4.替换所有的helowin为orcl   命令   :%s/helowin/orcl/g
 * 5.替换所有的HELOWIN为ORCL   命令   :%s/HELOWIN/ORCL/g
 * 6.删掉以--开头的行
 * 7.将CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS  NOARCHIVELOG 中的 REUSE 改为 SET
 * 8.注释掉 RECOVER DATABASE USING BACKUP CONTROLFILE
 * 9.调整后的内容可查看文末的图片
 */
# vi orcl.sql

/**
 * 1.连接数据库; 2.生成配置文件; 3.退出数据库
 */
# sqlplus / as sysdba
SQL> create pfile from spfile;
SQL> exit

/**
 * 1.修改$ORACLE_HOME/dbs目录下的“init实例名.ora”和“spfile实例名.ora”文件
 *     1.删除以helowin.开头的行
 *     2.替换所有的helowin为orcl   命令   :%s/helowin/orcl/g
 *     3.替换所有的HELOWIN为ORCL   命令   :%s/HELOWIN/ORCL/g
 * 2.修改$ORACLE_HOME/dbs目录下的“init.ora”文件, 如果内容中没有helowin和HELOWIN, 就不需要修改
 *     1.替换所有的helowin为orcl   命令   :%s/helowin/orcl/g
 *     2.替换所有的HELOWIN为ORCL   命令   :%s/HELOWIN/ORCL/g
 * 3.删除$ORACLE_HOME/dbs目录下的“lkHELOWIN”文件
 */
# cd $ORACLE_HOME/dbs
# vi initorcl.ora
# vi spfileorcl.ora
# vi init.ora
# rm -rf lkHELOWIN

/**
 * 1.修改$ORACLE_BASE/admin目录下的目录名
 * 2.修改$ORACLE_BASE/admin/实例名/pfile下的文件
 *   通过ls命令发现init.ora.72320146402文件, 则修改此文件。如果内容中没有helowin和HELOWIN, 就不需要修改
 *     1.替换所有的helowin为orcl   命令   :%s/helowin/orcl/g
 *     2.替换所有的HELOWIN为ORCL   命令   :%s/HELOWIN/ORCL/g
 */
# cd $ORACLE_BASE/admin
# mv helowin orcl
# cd orcl/pfile
# ls
init.ora.72320146402
# vi init.ora.72320146402

/**
 * 1.修改$ORACLE_BASE/diag/rdbms目录下的目录名
 * 2.删除$ORACLE_BASE/diag/rdbms/实例名 下的“helowin”文件
 */
# cd $ORACLE_BASE/diag/rdbms
# mv helowin orcl
# cd orcl
# ls
helowin  i_1.mif  orcl
# rm -rf helowin

/**
 * 1.修改$ORACLE_BASE/flash_recovery_area目录下的目录名
 * 2.删除$ORACLE_BASE/flash_recovery_area/实例名 下的“control02.ctl”控制文件
 */
# cd $ORACLE_BASE/flash_recovery_area
# mv HELOWIN ORCL
# mv helowin orcl
# cd orcl
# ls
control02.ctl  control02.ctl.bak
# rm -rf control02.ctl

/**
 * 1.修改$ORACLE_BASE/oradata目录下的目录名
 * 2.删除$ORACLE_BASE/oradata/实例名 下的“control01.ctl”控制文件
 */
# cd $ORACLE_BASE/oradata
# mv helowin orcl
# cd orcl
# ls
control01.ctl  control01.ctl.bak  example01.dbf  redo01.log  redo02.log  redo03.log  sysaux01.dbf  system01.dbf  temp01.dbf  undotbs01.dbf  users01.dbf
# rm -rf control01.ctl

/**
 * 1.修改$ORACLE_HOME/network/admin目录下的tnsnames.ora监听文件
 *     1.替换所有的helowin为orcl   命令   :%s/helowin/orcl/g
 *     2.替换所有的HELOWIN为ORCL   命令   :%s/HELOWIN/ORCL/g
 */
# cd $ORACLE_HOME/network/admin
# vi tnsnames.ora

/**
 * 1.查找一开始复制修改的orcl.sql文件; 2.连接数据库; 3.生成连接控制文件
 * 4.查看数据库运行状态; 5.查看数据库参数; 6.查看实例名; 7.退出数据库
 */
# cd $ORACLE_HOME/network/admin
# find /home -name orcl.sql
/home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl.sql
# sqlplus / as sysdba
SQL> @/home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl.sql
SQL> select open_mode from v$database;
SQL> show parameter name;
SQL> select name from v$database;
SQL> exit

/**
 * 1.查看监听状态; 2.启动监听; 3.关闭监听
 */
# lsnrctl status
# lsnrctl start
# lsnrctl stop

orcl.sql 调整后的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值