创建数据库 可以运行dbca用图形界面来创建,也可以用命令行来创建. 因为以前没有创建过集群下的数据库,因此我用图形界面来创建脚本,修改后用命令行来创建. 先确认ORACM和GSD已经启动:
$ ps -ef grep oracm root 3056 1 0 10:50 pts/1 00:00:00 oracm root 3057 3056 0 10:50 pts/1 00:00:00 oracm root 3059 3057 0 10:50 pts/1 00:00:00 oracm root 3060 3057 0 10:50 pts/1 00:00:00 oracm root 3061 3057 0 10:50 pts/1 00:00:00 oracm root 3062 3057 0 10:50 pts/1 00:00:00 oracm root 3063 3057 0 10:50 pts/1 00:00:00 oracm root 3064 3057 0 10:50 pts/1 00:00:00 oracm root 3065 3057 0 10:50 pts/1 00:00:00 oracm root 3338 3057 0 11:36 pts/1 00:00:00 oracm root 3362 3057 0 11:36 pts/1 00:00:00 oracm Oracle 3482 2932 0 11:38 pts/1 00:00:00 grep oracm $ gsdctl stat GSD is running on the local node 然后运行dbca启动数据库配置助手. 在欢迎画面中,选择Oracle cluster database, 然后一路继续就可以了. 在最后的总结画面上,可以选择创建数据库,也可以选择创建脚本.我选择了创建脚本. 手工修改脚本为自己想要的样子,然后跟非集群环境一样手工创建数据库.数据文件使用本地治理,不用数据字典治理.并创建缺省的撤消表空间(undo tablespace)和临时表空间. 注重: 根据我的经验,SGA太小,在创建数据字典的时候会失败,因此SGA可以大一些.但因为是集群,需要启动多个instance,所以在数据字典创建完以后,即catalog.sql,catproc.sql,catclust.sql运行完以后,需要将SGA改小一点. 修改init.ora文件,并拷贝到$ORACLE_HOME/dbs下,改名字为initrac.ora. 我是一个instance对应一个listener.也可以一个listener响应多个instnce. 其余参数可以自己根据自己的情况进行设置,以下是cluster的参数: undo_management=AUTO undo_retention=10800 cluster_database=true cluster_database_instances=5 rac1.instance_name=rac1 rac1.instance_number=1 rac1.local_listener=lsnr1 rac1.thread=1 rac1.undo_tablespace=UNDOTBS1 rac2.instance_name=rac2 rac2.instance_number=2 rac2.local_listener=lsnr2 rac2.thread=2 rac2.undo_tablespace=UNDOTBS2 rac3.instance_name=rac3 rac3.instance_number=3 rac3.local_listener=lsnr3 rac3.thread=3 rac3.undo_tablespace=UNDOTBS3 假如要多个instance都由一个listener来响应,则改以下两行: rac2.local_listener=lsnr1 rac3.local_listener=lsnr1 注重: 尽管数据库名字叫rac,但启动的实例名字不能叫rac.我将ORACLE_SID分别设置成了rac1,rac2,rac3. 然后启动第一个实例,创建数据库: $ eXPort ORACLE_SID=rac1 $ sqlplus /nolog SQL*Plus: Release 9.2.0.4.0???j? - ProdUCtion on Fri Nov 21 13:43:22 2003 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> conn / as sysdba; Connected to an idle instance. SQL> startup pfile=/u01/app/oracle/product/9.2.0.4.0/dbs/initrac.ora; ORACLE instance started. Total System Global Area 38867968 bytes Fixed Size 451584 bytes Variable Size 33554432 bytes Database Buffers 4194304 bytes Redo Buffers 667648 bytes Database mounted. Database opened. SQL> 创建数据库的命令: CREATE DATABASE rac MAXINSTANCES 32 MAXLOGHISTORY 100 MAXLOGFILES 192 MAXLOGMEMBERS 3 MAXDATAFILES 1024 DATAFILE '/u02/oradata/rac/rac/system01.dbf' SIZE 100M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE 1000M EXTENT MANAGEMENT LOCAL DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u02/oradata/rac/rac/temp01.dbf' SIZE 40M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE 1000M UNDO TABLESPACE "UNDOTBS1" DATAFILE '/u02/oradata/rac/rac/undotbs01.dbf' SIZE 50M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE 1000M CHARACTER SET ZHS16GBK LOGFILE GROUP 1 ('/u02/oradata/rac/rac/redo01.log') SIZE 10M REUSE, GROUP 2 ('/u02/oradata/rac/rac/redo02.log') SIZE 10M REUSE, GROUP 3 ('/u02/oradata/rac/rac/redo03.log') SIZE 10M REUSE; 然后创建数据字典. 以sysdba身份运行: SQL> @?
/rdbms/admin/catalog.sql; SQL> @?/rdbms/admin/catproc.sql; SQL> @?/rdbms/admin/catclust.sql; 以system身份运行: SQL> @?/sqlplus/admin/pupbld.sql;
|