假设要新建一个vcenter实例。
文章目录
进入oracle容器内,先切换root,再切换oracle用户
docker exec -it oracle11g bash
su root # 密码 helowin
su - oracle
进入$ORACLE_HOME下的dbs文件夹
echo $ORACLE_HOME
# /home/oracle/app/oracle/product/11.2.0/dbhome_2 家目录
echo $ORACLE_BASE
# /home/oracle/app/oracle 安装目录
cd $ORACLE_HOME
cd dbs
编辑init文件,创建目录等
# inithelowin.ora 是 init + helowin 其他实例名也可能是 initorcl
cp inithelowin.ora initvcenter.ora
vi initvcenter.ora
并替换原来的sid 为 vcenter 记住区分大小写。
注:local_listener这行要留空,否则后面可能报错。
vcenter.__db_cache_size=1191182336
vcenter.__java_pool_size=16777216
vcenter.__large_pool_size=16777216
vcenter.__oracle_base='/home/oracle/app/oracle'#ORACLE_BASE set from environment
vcenter.__pga_aggregate_target=1744830464
vcenter.__sga_target=1610612736
vcenter.__shared_io_pool_size=0
vcenter.__shared_pool_size=369098752
vcenter.__streams_pool_size=0
*.audit_file_dest='/home/oracle/app/oracle/admin/vcenter/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/home/oracle/app/oracle/oradata/vcenter/control01.ctl','/home/oracle/app/oracle/flash_recovery_area/vcenter/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='vcenter'
*.db_recovery_file_dest='/home/oracle/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=4070572032
*.diagnostic_dest='/home/oracle/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=vcenterXDB)'
*.local_listener=''
*.open_cursors=300
*.pga_aggregate_target=1741684736
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=1610612736
*.undo_tablespace='UNDOTBS1'
cd $ORACLE_BASE
cd admin
mkdir vcenter
mkdir adump bdump cdump pfile udump
进入 $ORACLE_BASE
下的oradata
文件夹,创建vcenter文件夹:
echo $ORACLE_BASE # 这里为/home/oracle/app/oracle
cd $ORACLE_BASE
cd oradata
mkdir vcenter
登录并启动
设置环境变量为vcenter,环境变量会影响sqlplus进入哪个实例:
export ORACLE_SID=vcenter # 设置环境变量
sqlplus /nolog
conn /as sysdba
startup nomount # 无挂载启动
启动报错了
这有个小插曲,报错了,提示信息为:
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name ‘LISTENER_VCENTER’
是因为 initvcenter.ora 中的 local_listener 配置值了 改为’'即可。
select instance_name from v$instance; # 查看实例是否创建成功
创建密码文件和数据库
创建密码文件:
$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwvcenter password=Aa123456* force=y # 文件生成在$ORACLE_HOME/dbs目录下
创建数据库:
CREATE DATABASE vcenter USER SYS IDENTIFIED BY sys USER SYSTEM IDENTIFIED BY manager
LOGFILE GROUP 1 ('/home/oracle/app/oracle/oradata/vcenter/redo01.log') SIZE 20M,
GROUP 2 ('/home/oracle/app/oracle/oradata/vcenter/redo02.log') SIZE 20M,
GROUP 3 ('/home/oracle/app/oracle/oradata/vcenter/redo03.log') SIZE 20M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET UTF8
DATAFILE '/home/oracle/app/oracle/oradata/vcenter/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/home/oracle/app/oracle/oradata/vcenter/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE tbs_1 datafile '/home/oracle/app/oracle/oradata/vcenter/tbs_1.dbf' size 50m
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/home/oracle/app/oracle/oradata/vcenter/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/home/oracle/app/oracle/oradata/vcenter/undotbs1.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
报错
报错了,提示信息为:
ORA-02165: invalid option for CREATE DATABASE
ORA-01501: CREATE DATABASE failed
ORA-00200: control file could not be created
ORA-00202: control file:
‘/home/oracle/app/oracle/flash_recovery_area/vcenter/control02.ctl’
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
说明没有文件夹,要确认
/home/oracle/app/oracle/flash_recovery_area/vcenter
/control02.ctl
中的所有文件夹都存在,这里发现少了vcenter路径。创建即可。
再次执行sql,还是报错
提示信息为:
ORA-01501: CREATE DATABASE failed
ORA-00200: control file could not be created
ORA-00202: control file:
‘/home/oracle/app/oracle/oradata/vcenter/control01.ctl’
ORA-27038: created file already exists
Additional information: 1
说明文件已经存在了,是因为之前执行过sql,control01.ctl
已被创建。删除文件 从新执行sql。
rm -f /home/oracle/app/oracle/oradata/vcenter/control01.ctl;
select instance_name,status from v$instance; # open表示成功
创建数据字典及相关视图
运行后续脚本,创建数据字典及相关视图,比较耗时,要有耐心,建议一行一行运行:
conn sys as sysdba # 登录
@?/rdbms/admin/catalog.sql;
-- 此过程可能需要10分钟左右
@?/rdbms/admin/catproc.sql;
-- 此过程可能需要15分钟左右
@?/rdbms/admin/catblock.sql;
@?/rdbms/admin/catoctk.sql;
@?/rdbms/admin/owminst.plb;
conn system/ manager
@?/sqlplus/admin/pupbld.sql;
@?/sqlplus/admin/help/hlpbld.sql helpus.sql
配置 listener.ora 和 tnsnames.ora
这两个文件在$ORACLE_HOME
下的network/admin目录下:
echo $ORACLE_HOME
# /home/oracle/app/oracle/product/11.2.0/dbhome_2
cd $ORACLE_HOME
cd network/admin
vi listener.ora
,复制 SID_DESC 内容,修改GLOBAL_DBNAME 和 SID_NAME 都为 vcenter,如下:
(SID_DESC=
(GLOBAL_DBNAME = vcenter)
(ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_2)
(SID_NAME = vcenter)
)
然后放到SID_LIST下。
vi tnsnames.ora
编辑文件:
2部分都要复制:
LISTENER_****** 改为 LISTENER_vcenter
模块名改为vcenter
SERVICE_NAME 改为 vcenter
LISTENER_HELOWIN =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
vcenter=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = vcenter)
)
)
完成。