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