天天看點

RAC執行個體 表空間 維護

先配置一下監聽,這樣我們就可以從用戶端進行連接配接了。 我這裡寫了三種連接配接。 第一種是正常方式,一般都采用這種方式,後面的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&gt;sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期四 9月

Copyright (c) 1982, 2010, Oracle.  All rights reserved

SQL&gt; conn sys/oracle@rac2 as sysdba;

已連接配接。

SQL&gt; 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&gt; conn sys/oracle@ASM AS SYSDBA

SQL&gt; select name from v$asm_diskgroup;

NAME

-------------------------------------------

DATA

FLASH_RECOVERY_AREA

1.2.1 使用全路徑來建立

SQL&gt; ALTER DISKGROUP DATA ADD ALIAS '+DATA/orcl/datafile/undotbs1.dbf'

FOR '+DATA/orcl/datafile/undotbs1.278.730181053';

1.2.2 使用資料檔案的編号來建立

這裡的編号就最後幾個數字,在下面這個檔案裡,編号就是:284.730181347

看一下建立SQL:

SQL&gt; 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&gt; pwd

+DATA/ORCL/DATAFILE

ASMCMD&gt; ls -a

+DATA/ORCL/DATAFILE/dave.dbf =&gt; DAVE.288.730415847

none =&gt; SYSAUX.257.729962649

none =&gt; SYSAUX.261.729964001

none =&gt; SYSAUX.266.729966263

none =&gt; SYSAUX.270.729970051

none =&gt; SYSAUX.277.730181053

none =&gt; SYSTEM.256.729962647

none =&gt; SYSTEM.260.729963993

none =&gt; SYSTEM.265.729966263

none =&gt; SYSTEM.269.729970045

none =&gt; SYSTEM.276.730181051

none =&gt; UNDOTBS1.258.729962649

none =&gt; UNDOTBS1.262.729964005

none =&gt; UNDOTBS1.267.729966265

none =&gt; UNDOTBS1.271.729970057

+DATA/ORCL/DATAFILE/undotbs1.dbf =&gt; UNDOTBS1.278.730181053

+DATA/ORCL/DATAFILE/undotbs2.dbf =&gt; UNDOTBS2.284.730181347

none =&gt; USERS.259.729962651

none =&gt; USERS.263.729964005

none =&gt; USERS.268.729966267

none =&gt; USERS.272.729970063

none =&gt; USERS.279.730181053

dave.dbf

undotbs1.dbf

undotbs2.dbf

在這裡,我們看到别名和資料檔案的對應關系,我們建立的所有資料檔案都有對應的ASM 檔案。我們可以使用别名來與之對應,但是建立DB時建立的表空間沒有對應的别名與之對應。 這個就是我之前說的,要修改這個預設設定就需要重建控制檔案。

1.3 重命名别名

SQL&gt; ALTER DISKGROUP DATA RENAME ALIAS '+DATA/orcl/datafile/undotbs1.dbf' TO '+DATA/orcl/datafile/undotbs3.dbf';

1.4 删除别名

SQL&gt;  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&gt; 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&gt; ALTER DATABASE DATAFILE '+DATA/orcl/datafile/users.279.730181053' RESIZE 10M;

資料庫已更改。

現在設定表空間的自動擴充屬性:

SQL&gt; ALTER DATABASE DATAFILE '+DATA/orcl/datafile/users.279.730181053'

  2  AUTOEXTEND ON

  3  NEXT 10M

  4  MAXSIZE UNLIMITED;

2.3 表空間添加資料檔案

SQL&gt; ALTER TABLESPACE DAVE ADD DATAFILE '+DATA/orcl/datafile/dave2.dbf' SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE 20M;

表空間已更改。

2.4 删除資料檔案

SQL&gt; ALTER TABLESPACE DAVE DROP DATAFILE '+DATA/orcl/datafile/dave2.dbf';

2.5. 删除表空間

SQL&gt; drop tablespace dave including contents and datafiles;

表空間已删除。

本文轉自 張沖andy 部落格園部落格,原文連結:http://www.cnblogs.com/andy6/p/5766673.html   ,如需轉載請自行聯系原作者