oracle添加数据库实例-命令行方式(linux环境)

假设要新建一个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)
    )
  )

完成。

发布了536 篇原创文章 · 获赞 22 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/enthan809882/article/details/104671687
今日推荐