2014/07/24

Published 7月 24, 2014 by

Create partition Table/Index

Create partition Table/Index
1.      確認是否需要新增Table/Index Tablespace
2.      確認空間是否足夠
3.      Create Partition table
4.      Split Partition
5.      Create Partition Index
6.      確認建立的Partition(找出最大的Partition)

一、產生新的 Table/index Tablespace語法(自行確認是否要新增)
CREATE TABLESPACE STGC5_TRG_2015Q1 DATAFILE
  '/rptdata1/c5prpt/STGC5_TRG_2015Q1_01.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE 32000M,
  '/rptdata2/c5prpt/STGC5_TRG_2015Q1_02.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE 32000M,
  '/rptdata3/c5prpt/STGC5_TRG_2015Q1_03.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE 32000M,
  '/rptdata4/c5prpt/STGC5_TRG_2015Q1_04.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE 32000M
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

二、確認Tablespace空間大小:
select t.tablespace_name ,avg(d.bytes/d.maxbytes)*100 as Used_Rate,sum(d.maxbytes)/1024/1024/1024 as max_g,sum(d.bytes)/1024/1024/1024 as Used_g,
       (sum(d.maxbytes)-sum(d.bytes))/1024/1024/1024 as free_space_g
FROM DBA_TABLESPACES T,DBA_DATA_FILES D
WHERE T. TABLESPACE_NAME =D. TABLESPACE_NAME and d.maxbytes!=0 group by t.tablespace_name
ORDER BY Free_space_g

三、增加Partition Table:

1.日期格式:
select 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME||' ADD PARTITION P2015Q1 VALUES LESS THAN (''20150401 000000'') TABLESPACE DWC5_TBL;'
from dba_tab_partitions t where table_owner='DWC5' AND PARTITION_NAME='P2014Q1';

結果:
ALTER TABLE DWC5.CUT_TIME_WIP ADD PARTITION P2015Q1 VALUES LESS THAN ('20150401 000000') TABLESPACE DWC5_TBL;


2.時間格式:
select 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME||' ADD PARTITION P2015Q1 VALUES LESS THAN TO_DATE('' 2015-04-01 00:00:00'', ''SYYYY-MM-DD HH24:MI:SS'', ''NLS_CALENDAR=GREGORIAN'') TABLESPACE DWC5_TBL;'
from dba_tab_partitions t where table_owner='DWC5' AND PARTITION_NAME='P2014Q1';

結果:
ALTER TABLE DWC5.CUT_TIME_WIP ADD PARTITION P2015Q1 VALUES LESS THAN TO_DATE(' 2015-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN') TABLESPACE DWC5_TBL;

四、Split Partition
SELECT 'ALTER TABLE '||TABLE_OWNER||'.'||TABLE_NAME||' SPLIT PARTITION CTHI_MAXVALUE (TO DATE(''20170101 000000'') INTO (PARTITION '
||PARTITION_NAME|| ', PARTITION CTHI_MAXVALUE TABLESPACE) ' ||TABLESPACE_NAME|| ';' from dba_tab_partitions t
where table_owner='C5PROD' AND PARTITION_NAME LIKE '%2015Q4';

結果:
ALTER TABLE C5PROD.FWAMTCOMPTRACKHISTORY SPLIT PARTITION CTHI_MAXVALUE (TO DATE('20170101 000000') INTO (PARTITION CTHI_2015Q4, PARTITION CTHI_MAXVALUE) TABLESPACE C5_PTT_CTHI10;

五、增加Partition Index
每季增加:
SELECT * FROM (SELECT 'ALTER INDEX ' || OWNER || '.' || SEGMENT_NAME || ' REBUILD PARTITION P2015Q4 TABLESPACE= ' || TABLESPACE_NAME || ';'  from dba_segments 
where tablespace_name='DWC5_IDX' AND PARTITION_NAME='P2014Q4');

結果:
ALTER INDEX DWC5.XPKCUT_TIME_WIP_P REBUILD PARTITION P2015Q4 TABLESPACE= DWC5_IDX;

一次找出一整年(Partition table要先建立好)
SELECT 'ALTER INDEX ' || INDEX_NAME || ' REBUILD PARTITION '||PARTITION_NAME|| ' TABLESPACE '||TABLESPACE_NAME|| ';'
FROM ALL_IND_PARTITIONS WHERE INDEX_OWNER='STGC5' AND PARTITION_NAME LIKE '%2014Q%';

結果:
ALTER INDEX IDX_COMPDLTYPETIME_600A REBUILD PARTITION P2014Q1 TABLESPACE STGC5_TRG_IDX_2014Q1;

六、找出最大的Partition
SELECT INDEX_NAME,max(PARTITION_NAME) FROM ALL_IND_PARTITIONS WHERE INDEX_OWNER='STGC5'  group by INDEX_NAME order by max(PARTITION_NAME);


參考資料:

http://docs.oracle.com/cd/E11882_01/server.112/e25523/part_admin002.htm
Read More

2014/07/21

Published 7月 21, 2014 by

Linux下安裝xrdp

Linux下安裝xrdp
使用rdp協定訪問遠端Linux桌面
Read More

2014/07/20

Published 7月 20, 2014 by

被動收入-分類

一般來說被動收入有兩種方式:
1.
透過資本賺被動收入(較適合有一桶金以上的人)
2.
透過技能專長興趣賺被動收入(較適合時間較多的人)

Read More

2014/05/23

Published 5月 23, 2014 by

DB File/Tablespace Size Monitor

查看每個File的使用率
SELECT T.TABLESPACE_NAME,D.FILE_NAME,D.AUTOEXTENSIBLE,D.BYTES/1024/1024/1024 as USED_G,D.MAXBYTES/1024/1024/1024 AS MAX_G,D.STATUS,(d.bytes/d.maxbytes)*100 AS UseRate
FROM DBA_TABLESPACES T,DBA_DATA_FILES D
WHERE T. TABLESPACE_NAME =D. TABLESPACE_NAME and d.maxbytes!=0 ORDER BY UseRate desc

查看Tablespace的平均使用率及剩餘空間
select t.tablespace_name ,avg(d.bytes/d.maxbytes)*100 as Used_Rate,sum(d.maxbytes)/1024/1024/1024 as max_g,sum(d.bytes)/1024/1024/1024 as Used_g,
       (sum(d.maxbytes)-sum(d.bytes))/1024/1024/1024 as free_space_g
FROM DBA_TABLESPACES T,DBA_DATA_FILES D
WHERE T. TABLESPACE_NAME =D. TABLESPACE_NAME and d.maxbytes!=0 group by t.tablespace_name
ORDER BY Free_space_g
Read More

2014/05/16

Published 5月 16, 2014 by

DB常用指令

Create Function:

CREATE INDEX DWPIA.IDX_SAP_STB_MTIDX ON DWPIA.SAP_STB
(MTIDX, RDATE)
LOGGING
TABLESPACE DWC5_IDX
NOPARALLEL online;

CREATE TABLESPACE C5_SYS_DATA DATAFILE '+DBDATA/c5tasm/datafile/C5_SYS_DATA.dbf' SIZE 5M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;

CREATE USER C5TST3 IDENTIFIED BY C5TST3 ACCOUNT UNLOCK;

Drop Function:

DROP TABLESPACE tspace INCLUDING CONTENTS AND DATAFILES;

Grant Function:

GRANT RESOURCE TO C5TST3;
GRANT CREATE SESSION TO C5TST3
Read More

2014/05/07

Published 5月 07, 2014 by

Oracle ASM To File File::DBMS_FILE_TRANSFER


Oracle ASM To File File:DBMS_FILE_TRANSFER
建立Directory
SQL> create directory souredir as '+DBDATA/c5tasm/datafile';
SQL> create directory destdir as '/orasys';
Directory created

確認directories:
SQL>select * from dba_directories;

確認FileStatus:
SQL>select file_name, file_id, online_status from dba_data_files order by File_id;

Tablespace C5OPI Offline:
SQL> alter tablespace C5OPI offline;
Tablespace altered.

做資料轉換:
SQL>begin
  dbms_file_transfer.copy_file(source_directory_object => 'destdir',
                               source_file_name => 'C5OPI_DATA_01.DBF',
                               destination_directory_object =>'souredir',
                               destination_file_name => 'C5OPI_DATA_01.DBF');
end;
/

把位置rename一下:
SQL> alter database rename file '/orasys/C5OPI_DATA_01.DBF' to  '+DBDATA/c5tasm/datafile/c5opi_data_01.dbf';
Database altered.

Recover datafile:
SQL> alter database recover datafile 6;

TablespaceOnline:
SQL> alter tablespace c5opi online;

確認最後狀況:
SQL>select file_name, file_id, online_status from dba_data_files;


Reference:
11gr2轉換:透過ASMCMD
DBMS_FILE_TRANSFER包方法
RMAN轉換
http://blog.itpub.net/17203031/viewspace-1065094/
================================================================
This e-mail and any files transmitted with it are CONFIDENTIAL and intended solely for the use of the intended recipient.  If you are not the intended recipient or the named addressee, please notify the sender immediately and delete this e-mail and any files transmitted with it from your system; you should not disseminate, distribute, or copy this e-mail and any files transmitted with it, or take any action in reliance on the contents of the said e-mail and files.
================================================================
Read More

2014/04/24

Published 4月 24, 2014 by

Linux Multipath (Storage I/O)

Linux Multipath (Storage I/O)

l         Multipath說明
儲存裝置到主機有多條路徑, 這就叫作 Multipath, 一般在外接 Storage 上較常看到
Multipath 一般常看到的是在 Storage 上有一個以上的 Controller 或是 供外部主機存取的介面, 這個情況下你會發現, 我在 Storage 上明明只切了一塊空間給主機, 但是再主機上卻看到兩個空間

Read More

2014/04/02

Published 4月 02, 2014 by

Oracle Listener 教學

Oracle Listener Status教學

Listener啟動/關閉
Listener啟動在不同的Port
Oracle Listener Help
Client TNS設定

Read More

2014/03/20

Published 3月 20, 2014 by

Oracle Archive log

Oracle Archive log教學
DB:Oracle 10G R2
Read More

2014/03/17

Published 3月 17, 2014 by

OEM Server/Agent Install

OEM Server/Agent Install:

前置工作
安裝OEM Server 10.2.0.3
OEM升級10.2.0.5
OEM升級Agent
Client Agnet安裝/移除
OEM/OMS/Agent日常維護指令
安裝過程中的錯誤

Server:Redhat 5.4
OEM Server:10.2.0.3升級10.2.0.5
Agent: 10.2.0.3升級10.2.0.5

Read More

2014/02/27

Published 2月 27, 2014 by

JOB Lock & job_queue_processes

系統出現ORA-00054: resource busy and acquire with NOWAIT specified,時間點約在22:00:36分,猜測應該是在做Analysis的時候,有lock住檔案。

1.Check Job是否在Running
2.Stop job
3.Kill job session
4.Check job status
5.Start Job

若不讓job暫時啟動起來:
1.Check Jobs啟動數量
2.job_queue_processes = 0;
3.工事處理完之後,job_queue_processes = original_value;

Read More

2014/02/24

Published 2月 24, 2014 by

lsof-->List Open Files

lsof 簡介 lsof linux 下的一個非常實用的系統級的監控、診斷工具。 它的意思是 List Open Files

我們常有發生過需要刪除fileumount folder,系統常會出現busy或顯示lock訊息,
透過lsof指令可以查出誰是兇手!

它可以用來列出被各種進程打開的文件信息,記住:linux “一切皆文件”,
包括但不限於 pipes, sockets, directories, devices, 等等,
因此,使用 lsof,你可以獲取任何被打開文件的各種信息。

Read More

2014/01/22

Published 1月 22, 2014 by

PLSQL常用指令

PLSQL常用指令

Read More

2014/01/17

Published 1月 17, 2014 by

RMAN常用指令

1、SHOW命令:
顯示rman配置: RMAN> show all;  查詢問前的設定

更改設定:
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON;

還原成預設值:
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP CLEAR;

查詢備份時間及備份大小:
select fname, round(bytes/1024/1024) ,bs_completion_time,df_ckp_mod_time,df_tablespace  from v$backup_files where  df_tablespace like '%C5%' order by df_ckp_mod_time;



2、REPORT命令:
   2.1、RMAN> report schema                        報告目標數據庫的物理結構;
   2.2、RMAN>report need backup days=3;            報告最近3天沒有被備份的數據文件;
   2.3、RMAN> report need backup days 3 tablespace users;   在USERS表空間上3天未備份的數據文件;
   2.4、RMAN> report need backup incremental 3;    報告恢復數據文件需要的增量備份個數超過3次的數據文件;
   2.5、RMAN> report need backup redundancy 2 database;  報告備份文件低於2份的所有數據文件;
            RMAN>report need backup redundancy=2;
   2.6、RMAN> report need backup recovery window of 6 days;    報告文件報表的恢復需要超過6天的歸檔日誌的數據文件;
   2.7、RMAN> report unrecoverable;      報告數據庫所有不可恢復的數據文件;
   2.8、RMAN> report obsolete redunndancy 2; 報告備份次數超過2次的陳舊備份;
   2.9、RMAN>report obsolete;          報告多余的備份;

3、LIST命令:列出備份信息
   3.1、列出數據文件備份集
        RMAN>list backup;         列出詳細備份;
        RMAN>list expired backup;     列出過期備份;
        RMAN> list backup of database;     列出所有數據文件的備份集;
        RMAN> list backup of tablespace user01; 列出特定表空間的所有數據文件備份集;
   3.2、RMAN> list backup of controlfile     列出控制文件備份集;
   3.3、RMAN> list backup of archivelog all      列出歸檔日誌備份集詳細信息;
            RMAN>list archivelog all;      列出歸檔日誌備份集簡要信息
   3.4、RMAN> list backup of spfile              列出SPFILE備份集;
   3.5、RMAN> list copy of datafile 5        列出數IC報價網據文件映像副本;
   3.6、RMAN> list copy of controlfile           列出控制文件映像副本;
   3.7、RMAN> list copy of archivelog all    列出歸檔日誌映像副本;
   3.8、RMAN> list incarnation of database       列出對應物/列出數據庫副本;
   3.9、RMAN>list backup summary;    概述可用的備份;
                B表示backup
                F表示FULL
                A表示archive log
                0 1表示incremental backup
                S說明備份狀態(A AVAILABLE   X EXPIRED )
   
   3.10、RMAN>list backup by file    按備份類型列出備份;
                   按照數據文件備份,歸檔日誌備份,控制文件備份,服務器參數文件備份 列出

4、CROSSCHECK命令:校驗備份信息
   4.1、RMAN> crosscheck backup             核對所有備份集;
   4.2、RMAN> crosscheck backup of database      核對所有數據文件的備份集;
   4.3、RMAN> crosscheck backup of tablespace users      核對特定表空間的備份集;
   4.4、RMAN> crosscheck backup of datafile 4    核對特定數據文件的備份集;
   4.5、RMAN> crosscheck backup of controlfile   核對控制文件的備份集;
   4.6、RMAN> crosscheck backup of spfile    核對SPFILE的備份集;
   4.7、RMAN> crosscheck backup of archivelog sequence 3 核對歸檔日誌的備份集;
   4.8、RMAN> crosscheck copy               核對所有映像副本;
   4.9、RMAN> crosscheck copy of database       核對所有數據文件的映像副本;
   4.10、RMAN> crosscheck copy of tablespace users       核對特定表空間的映像副本;
   4.11、RMAN> crosscheck copy of datafile 6        核對特定數據文件的映像副本;
   4.12、RMAN> crosscheck copy of archivelog sequence 4  核對歸檔日誌的映像副本;
   4.13、RMAN> crosscheck copy of controlfile       核對控制文件的映像副本;
   4.14、RMAN> crosscheck backup tag='SAT_BACKUP';
   4.15、RMAN> crosscheck backup completed after 'sysdate - 2'
   4.16、RMAN> crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
   4.17、RMAN> crosscheck backup device type sBT;
   4.18、RMAN> crosscheck archivelog all;
   4.19、RMAN> crosscheck archivelog like '%ARC00012.001'
   4.20、RMAN> crosscheck archivelog from sequence 12;
   4.21、RMAN> crosscheck archivelog until sequence 522;

5、DELETE:刪除備份
   5.1、RMAN> delete obsolete;      刪除陳舊備份;
   5.2、RMAN> delete expired backup; 刪除EXPIRED備份  
   5.3、RMAN> delete expired copy;   刪除EXPIRED副本;
   5.4、RMAN> delete backupset 19;   刪除特定備份集;
   5.5、RMAN> delete backuppiece ''d:\backup\DEMO_19.bak''   刪除特定備份片;
   5.6、RMAN> delete backup      刪除所有備份集;
   5.7、RMAN> delete datafilecopy ''d:\backup\DEMO_19.bak''  刪除特定映像副本;
   5.8、RMAN> delete copy   刪除所有映像副本;
   5.9、RMAN> delete archivelog all delete input;
            RMAN> delete backupset 22 format = ''d:\backup\%u.bak'' delete input
                          在備份後刪除輸入對象;
   5.10 RMAN> delete backupset id; 刪除備份集
Read More
Published 1月 17, 2014 by

單一Tablespace回到指定時間點-Tablespace Point-in-Time Recovery(TSPITR):

步驟:
確定復原的正確時間,ex Flashback querydb最後的備份時間
確定復原內容
確認復原之後,那一些資料會不見

TSPITR可以讓你快速復原到之前的一個或多個tablespaces
TSPITR不影響其它的Tablespaces或者objects
一般TSPITR用在以下的情況:
一、大量Truncate復原資料
二、Tablespace有資料損壞
三、當有大量job更改了table,需要回復到某一時間點

Read More

2014/01/15

Published 1月 15, 2014 by

Duplicate database

流程:
一、Backup Source DB and Copy file to Duplicate DB
二、Source DB備份spfilepfile
三、設定Duplicate DB password
四、設定Duplicate DB TNS
五、修改pfile檔案內容及路徑,並建立路徑
六、Duplicate DB(From Disk & Tape+RC)
Read More

2014/01/08

Published 1月 08, 2014 by

ASM File Copy

ASM File Copy
這是一個存儲過程包,是除了RMAN之外又一個用於執行遷移任務的工具包,可以完成如下的遷移:ASM->ASMASM->OS FlieOS File->ASMOS File->OS File
使用DBMS_FILE_TRANSFER遷移表空間和數據文件

流程:
1.Tablespace Offline
2.建立Source Dir & Target Dir
3.檔案copy Dbms_file_transfer.copy_file
4.更改檔案路徑,alter database  rename file
5.Tablespace Online

Read More

2014/01/07

Published 1月 07, 2014 by

Cross-platform Transport Tablespace

Cross-platform Transport Tablespace的注意事項:

Oracle8/8i=>兩個database必須有相同oracle版本,OS平台,block size,characterset
Oracle9i=>兩個database必須有相同oracle版本,OS平台,characterset.block size可以不相同(可以有1standard block,4non-standard block同時存在)
Oracle10g/11g=>兩個database必須有相同oracle版本,characterset.block sizeos平台可以不相同

做法:
Source:Export Metadata,offline db datafile
target:Import Metadata, cp source db datafile

Read More

2014/01/06

Published 1月 06, 2014 by

Table Reorganization(shrink space)

Propose / 目標
1.move down the HWM (表格如果常異動 insert/update/delete,則會產生許多碎片)
2.releases unused extents.

Howto:
alter table mytable enable row movement;
alter table mytable shrink space compact <cascade>;
alter table mytable shrink space <cascade>;
Read More