複製使用者結構
描述:如何在不同資料庫或者同一個資料庫內複製使用者結構,下面以不同資料庫為例,且表空間不同。
1.方法一:使用exp/imp
1.1源庫匯出結構
$ export ORACLE_SID=testa
$ sqlplus \'/ as sysdba\'
--使用者佔用的表空間
SQL>select tablespace_name,sum(bytes)/1024/1024 from dba_segments where wner = 'TESTUSER' group by tablespace_name;
TABLESPACE_NAME SUM(BYTES)/1024/1024
------------------------------ --------------------
TBS_INDEX 10560
TBS_DATA 2
--使用者的物件數量
SQL> select object_type,count(*) from dba_objects where wner='TESTUSER' group by rollup(object_type);
OBJECT_TYPE COUNT(*)
------------------- ----------
DATABASE LINK 1
INDEX 6
TABLE 25
VIEW 5
37
--匯出使用者結構
$ exp \'/ as sysdba\' wner=testuser rows=n file=testuser.dmp
1.2將dmp檔案ftp到目標資料庫主機(可選)
1.3生成表和索引的SQL指令碼
$ export ORACLE_SID=testb
--目標庫表空間空閒情況
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;
TABLESPACE_NAME SUM(BYTES)/1024/1024
------------------------------ --------------------
SYSTEM 3.25
TBS_DATA 75815.5625
USERS 4.5625
SYSAUX 7.25
UNDOTBS1 1817.5625
--建使用者
SQL> create user TESTUSER identified by TESTUSER default tablespace tbs_data temporary tablespace temp;
SQL> grant connect,resource,select any table,debug connect session to TESTUSER;
--生成建表和索引SQL檔案
$ imp \'/ as sysdba\' fromuser=TESTUSER touser=TESTUSER indexfile=TESTUSER_create.sql
--將源表空間替換成目標表空間
$ vi TESTUSER_create.sql
:g/REM /s//
:g/TBS_INDEX/s//TBS_DATA/g
1.4建立表和索引,匯入其他物件
$ sqlplus "/ as sysdba" @TESTUSER_create.sql
$ imp \'/ as sysdba\' fromuser=TESTUSER touser=TESTUSER ignore=y
--統計使用者物件,核查是否和源使用者物件一致
SQL> select object_type,count(*) from dba_objects where wner='TESTUSER' group by rollup(object_type);
OBJECT_TYPE COUNT(*)
------------------- ----------
DATABASE LINK 1
INDEX 6
TABLE 25
VIEW 5
37
2.方法二:使用expdp/impdp
2.1expdp匯出使用者結構
$ export ORACLE_SID=testa
$ expdp \'/ as sysdba\' content=metadata_only schemas=TESTUSER DIRECTORY=dir_test dumpfile=TESTUSER.dmp
2.2將dmp檔案ftp到目標資料庫主機
2.3impdp匯入使用者結構
$ export ORACLE_SID=testb
$ impdp \'/ as sysdba\' content=metadata_only schemas=TESTUSER DIRECTORY=dir_test dumpfile=TESTUSER.dmp REMAP_TABLESPACE=tbs_index:tbs_data
注:這裡可以使用network_link引數,一步到位複製使用者。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/405242/viewspace-687769/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- postgres複製表結構
- MySQL 複製表結構MySql
- mysql表結構複製MySql
- MySQL(二):主從複製結構、半同步複製、雙主複製結構、利用SSL實現安全的MySQL主從複製MySql
- 主體複製概念和體系結構——高階複製
- 物化檢視複製概念和體系結構——高階複製
- 改變複製物件結構對高階複製的影響物件
- mysql中複製表結構的方法小結MySql
- redis主從複製幾種結構Redis
- mysql複製表結構和資料MySql
- sql複製表結構和資料SQL
- oracle 表結構的非完全複製Oracle
- mysql 如何複製表結構和資料MySql
- 【CUDA學習】結構體指標複製結構體指標
- 複製表結構和資料SQL語句SQL
- MySQL主從複製結構中常用引數MySql
- Day 7.5 資料型別總結 + 複製 淺複製 深複製資料型別
- mysql完全複製一個表(結構和資料)MySql
- 部署模板概念和體系結構——高階複製
- 使用結構化克隆在 JavaScript 中進行深度複製JavaScript
- mysql 複製表資料,表結構的3種方法MySql
- 結構體中的指標&&複製賦值建構函式改造結構體指標賦值函式
- 高階複製總結
- C++再議建構函式及複製建構函式深度複製C++函式
- MySQL複製的常用架構MySql架構
- js實現複製連結JS
- 淺複製和深複製的概念與值複製和指標複製(引用複製)有關 淺複製 “指標複製 深複製 值複製指標
- 【轉載】如何在Oracle中複製表結構和表資料Oracle
- 衝突解決方案概念和體系結構——高階複製
- Java引用複製、淺複製、深複製Java
- 面試題35:複雜連結串列的複製面試題
- C++複製建構函式C++函式
- MySQL 半同步複製+MMM架構MySql架構
- 深層複製建構函式函式
- 前端模擬使用者的複製操作前端
- 同一資料間複製使用者
- ZeroClipboard 多個複製按鈕,多個複製連結 實現方式
- JS物件複製:深複製和淺複製JS物件