先配置一下監聽,這樣我們就可以從用戶端進行連接配接了。 我這裡寫了三種連接配接。 第一種是正常方式,一般都采用這種方式,後面的rac1和rac2 是友善測試。因為如果用第一種方式的話,用戶端連哪個執行個體是随機的,不好進行控制,除非手動的關閉某個執行個體,讓Oracle 漂過去,那樣有點麻煩。 我就又多添加了2個監聽,分别對應執行個體1和執行個體2. 配置這2個監聽的時候,要注意Service_name 這個參數,也是orcl. 即全局名。 不是對應的執行個體名。
Oracle 執行個體監聽:
RAC =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.10.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.10.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
(FAILOVER_MODE =
(TYPE = session)
(METHOD = basic)
(RETRIES = 180)
(DELAY = 5)
)
)
Rac1 =
Rac2 =
ASM 執行個體監聽配置,手動的修改tnsnames.ora 檔案。
如何配置從遠端用戶端 來通路ASM 執行個體,參考Blog:
遠端用戶端 通路 ASM 執行個體
<a href="http://blog.csdn.net/tianlesoftware/archive/2010/09/23/5901749.aspx">http://blog.csdn.net/tianlesoftware/archive/2010/09/23/5901749.aspx</a>
在這裡做一下說明, RAC 的資料檔案和控制檔案都是放在共享裝置上的,是以添加資料檔案或對資料檔案做修改時,隻需要在一個節點上進行就可以了。
一. 用别名管理資料檔案
1.1 檢視已經存在的資料檔案:
C:/Users/Administrator.DavidDai>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 9月
Copyright (c) 1982, 2010, Oracle. All rights reserved
SQL> conn sys/oracle@rac2 as sysdba;
已連接配接。
SQL> select file_name from dba_data_files;
FILE_NAME
------------------------------------------------------
+DATA/orcl/datafile/users.279.730181053
+DATA/orcl/datafile/sysaux.277.730181053
+DATA/orcl/datafile/undotbs1.278.730181053
+DATA/orcl/datafile/system.276.730181051
+DATA/orcl/datafile/undotbs2.284.730181347
ASM檔案名字的格式是固定的:+group/dbname/file type/tag.file.incarnation
在建立db時系統自動建立的幾個表空間(system,undotbs,sysaux,users)對應的都是真實的資料檔案,即ASM 檔案預設的命名格式。而且這個資訊都寫到了控制檔案裡。 如果我們使用别名的話,會友善很多。 對于這些建立資料庫時自動建立的表空間,我們要他們使用别名,除了手工建立對應别名外,還需要重建控制檔案,并且在重建時,datafile 裡寫别名的資訊。 這樣資料庫也就使用别名了。
1.2 建立一個别名
注意: 别名的相關操作都要連接配接到ASM執行個體進行。 這也是我們前面配置ASM 監聽的原因。
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 9月 23 12:07:24 2010
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> conn sys/oracle@ASM AS SYSDBA
SQL> select name from v$asm_diskgroup;
NAME
-------------------------------------------
DATA
FLASH_RECOVERY_AREA
1.2.1 使用全路徑來建立
SQL> ALTER DISKGROUP DATA ADD ALIAS '+DATA/orcl/datafile/undotbs1.dbf'
FOR '+DATA/orcl/datafile/undotbs1.278.730181053';
1.2.2 使用資料檔案的編号來建立
這裡的編号就最後幾個數字,在下面這個檔案裡,編号就是:284.730181347
看一下建立SQL:
SQL> ALTER DISKGROUP DATA ADD ALIAS '+DATA/orcl/datafile/undotbs2.dbf'
2 FOR '+DATA.284.730181347'; -- 注意這裡的格式
磁盤組已變更。
來檢視别名的資訊,這裡要用asmcmd指令:
[oracle@rac1 admin]$ export ORACLE_SID=+ASM1
[oracle@rac1 admin]$ asmcmd
ASMCMD> pwd
+DATA/ORCL/DATAFILE
ASMCMD> ls -a
+DATA/ORCL/DATAFILE/dave.dbf => DAVE.288.730415847
none => SYSAUX.257.729962649
none => SYSAUX.261.729964001
none => SYSAUX.266.729966263
none => SYSAUX.270.729970051
none => SYSAUX.277.730181053
none => SYSTEM.256.729962647
none => SYSTEM.260.729963993
none => SYSTEM.265.729966263
none => SYSTEM.269.729970045
none => SYSTEM.276.730181051
none => UNDOTBS1.258.729962649
none => UNDOTBS1.262.729964005
none => UNDOTBS1.267.729966265
none => UNDOTBS1.271.729970057
+DATA/ORCL/DATAFILE/undotbs1.dbf => UNDOTBS1.278.730181053
+DATA/ORCL/DATAFILE/undotbs2.dbf => UNDOTBS2.284.730181347
none => USERS.259.729962651
none => USERS.263.729964005
none => USERS.268.729966267
none => USERS.272.729970063
none => USERS.279.730181053
dave.dbf
undotbs1.dbf
undotbs2.dbf
在這裡,我們看到别名和資料檔案的對應關系,我們建立的所有資料檔案都有對應的ASM 檔案。我們可以使用别名來與之對應,但是建立DB時建立的表空間沒有對應的别名與之對應。 這個就是我之前說的,要修改這個預設設定就需要重建控制檔案。
1.3 重命名别名
SQL> ALTER DISKGROUP DATA RENAME ALIAS '+DATA/orcl/datafile/undotbs1.dbf' TO '+DATA/orcl/datafile/undotbs3.dbf';
1.4 删除别名
SQL> ALTER DISKGROUP DATA DROP ALIAS '+DATA/orcl/datafile/undotbs3.dbf';
-- 這裡要說明一下,很多資料說是用delete 關鍵字。 其實這裡用的是drop 關鍵字
1.5 用别名來删除檔案
ALTER DISKGROUP DATA DROP FILE '+DATA/ORCL/DATAFILE/undotbs3.dbf';
1.6 根據資料檔案的檔案号來删除檔案
ALTER DISKGROUP DATA DROP FILE ' DATA.342.3';
1.7 用完整檔案路勁删除檔案
ALTER DISKGROUP DATA DROP FILE ' DATA /orcl/datafile/dave.342.3';
這部分内容可以參考Oracle 聯機文檔:
<a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e16102/asmfiles.htm#CHDDHIGG">http://download.oracle.com/docs/cd/E11882_01/server.112/e16102/asmfiles.htm#CHDDHIGG</a>
二. 資料檔案管理
2.1. 建立表空間
和單執行個體的相同,隻不過檔案路勁寫成ASM的路勁:
SQL> CREATE TABLESPACE DaveHomeTown DATAFILE '+DATA/orcl/datafile/AnhuiAnqing.dbf' SIZE 10M;
表空間已建立。
--------------------------------------------------------------------------------
+DATA/orcl/datafile/dave.dbf
+DATA/orcl/datafile/anhuianqing.dbf
已選擇7行。
我是在節點1上建立的。 前面已經說過,因為它是共享的,是以在節點2上也能查詢到。
如果遇到如下錯誤:
ORA-00569: Failed to acquire global enqueue.
Cause: A prior error occurred on one of the instances in the cluster. Typically errors are caused by shared pool resource contention.
Action: Check for and resolve prior errors on all instances in the cluster. If there is shared pool resource contention, increase the SHARED_POOL_SIZE, DML_ LOCKS, PROCESSES, TRANSACTIONS, CLUSTER_DATABASE_INSTANCES and PARALLEL_MAX_SERVERS initialization parameters.
就檢查一下ASM的相關參數。
Oracle ASM 詳解
<a href="http://blog.csdn.net/tianlesoftware/archive/2010/02/22/5314541.aspx">http://blog.csdn.net/tianlesoftware/archive/2010/02/22/5314541.aspx</a>
2.2 修改資料檔案大小
預設情況下,user 表空間是5M, 我們來把它改成10M。
SQL> ALTER DATABASE DATAFILE '+DATA/orcl/datafile/users.279.730181053' RESIZE 10M;
資料庫已更改。
現在設定表空間的自動擴充屬性:
SQL> ALTER DATABASE DATAFILE '+DATA/orcl/datafile/users.279.730181053'
2 AUTOEXTEND ON
3 NEXT 10M
4 MAXSIZE UNLIMITED;
2.3 表空間添加資料檔案
SQL> ALTER TABLESPACE DAVE ADD DATAFILE '+DATA/orcl/datafile/dave2.dbf' SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE 20M;
表空間已更改。
2.4 删除資料檔案
SQL> ALTER TABLESPACE DAVE DROP DATAFILE '+DATA/orcl/datafile/dave2.dbf';
2.5. 删除表空間
SQL> drop tablespace dave including contents and datafiles;
表空間已删除。
本文轉自 張沖andy 部落格園部落格,原文連結:http://www.cnblogs.com/andy6/p/5766673.html ,如需轉載請自行聯系原作者