Kreowanie bazy danych
Po prawidłowym zainstalowaniu opcji GRID możemy zainstalować software bazy danych i przystąpić do tworzenia bazy – opisałem ręczny sposób stworzenia bazy i zarejestrowania jej w klastrze:
- Przykładowy plik pfile:
sga_target=1G
sga_max_size=2G
pga_aggregate_target=200M
processes = 150
audit_trail ='db'
db_block_size=8192
db_recovery_file_dest_size=2G
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
orcl1.instance_name=orcl1
orcl2.instance_name=orcl2
orcl1.thread=1
orcl2.thread=2
orcl1.undo_tablespace=UNDO1
orcl2.undo_tablespace=UNDO2
cluster_database=false
cluster_database_instances=2
db_create_file_dest='+DATA'
db_create_online_log_dest_1='+DATA'
db_recovery_file_dest='+DATA'
- Uruchamiamy bazę w trybie NOMOUNT i przystępujemy do jej tworzenia
sqlplus "/ as sysdba"SQL> create spfile from pfile;
SQL> startup nomount
ORACLE instance started.
Total System Global Area 3221225472 bytes
Fixed Size 2087416 bytes
Variable Size 3019900424 bytes
Database Buffers 184549376 bytes
Redo Buffers 14688256 bytes
CREATE DATABASE
CONTROLFILE REUSE
DATAFILE SIZE 1G
AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
SYSAUX DATAFILE SIZE 600M
AUTOEXTEND ON NEXT 10240K MAXSIZE 5G
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE
SIZE 500M
UNDO TABLESPACE "UNDO1" DATAFILE
SIZE 1G autoextend on next 10M maxsize 5G
CHARACTER SET EE8ISO8859P2
LOGFILE GROUP 1 SIZE 100M,
GROUP 2 SIZE 100M,
GROUP 3 SIZE 100M;
- Po prawidłowym wykonaniu tworzenia bazy danych, należy stworzyć dla niej słownik danych i zestaw pakietów oraz typów.
SQL> @?/rdbms/admin/catproc.sql
SQL> @?/rdbms/admin/catclust.sql
SQL> @?/rdbms/admin/utlrp.sql
- Po zmianie parametru CLUSTER_DATABASE na TRUE restartujemy instancję i dodajemy nowe grupy REDO oraz nową przestrzeń tabel UNDO dla drugiej instancji RAC’a
alter database add logfile thread 2 group 5;
alter database add logfile thread 2 group 6;
alter database enable public thread 2;create undo tablespace undo2
datafile size 200m
autoextend on next 10m
maxsize unlimited;
Rejestracja bazy w klastrze
Możemy zarejestrować bazę danych w klastrze na dwa sposoby – stary i nowy.
Za pomocą starego sposobu rejestrujemy bazę i przypisujemy jej instancje, znajdujące się na poszczególnych węzłach klastra.
Posługując się nową metodą, stworzymy pulę serwerów, za pomocą której baza Oracle będzie zarządzana.
W tej instalacji stworzyłem pulę serwerów.
[oracle@rac1 ~]$ srvctl status srvpool
Server pool name: Free
Active servers count: 0
Server pool name: Generic
Active servers count: 0
Server pool name: prod_orcl
Active servers count: 2[oracle@rac1 ~]$ srvctl add database -d orcl -o /u01/app/oracle/product/11.2.0/db_1 -p /u01/app/oracle/product/11.2.0/db_1/dbs/spfileorcl.ora -g prod_orcl -a data,orahome
[oracle@rac1 ~]$ srvctl config database -d orcl
Database unique name: orcl
Database name:
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: /u01/app/oracle/product/11.2.0/db_1/dbs/spfileorcl.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: prod_orcl
Database instances:
Disk Groups: DATA,ORAHOME
Services:
Database is policy managed
[oracle@rac1 ~]$ srvctl add instance -d orcl -i orcl1 -n rac1
PRCD-1051 : Failed to add instance to database orcl
PRCD-1045 : Database orcl is policy managed and does not support add instance option
[oracle@rac1 ~]$ srvctl status database -d orcl
Database is not running.
[oracle@rac1 ~]$ srvctl start database -d orcl