閱讀207 返回首頁    go windows


遷移 RDS for PPAS 數據到本地 Oracle__數據遷移_用戶指南_雲數據庫 RDS 版-阿裏雲

限製說明

當前隻支持文件及普通數據類型進行導出,不支持 BLOB 等二進製類型。

前提條件

  • 已安裝好 Oracle 數據庫的服務器。
  • 在 RDS for PPAS 數據庫實例的白名單中添加 Oracle 服務器的IP地址,具體操作請參見設置白名單
  • 用戶需要按 RDS for PPAS 數據庫中的表結構在 Oracle 中建立對應的表結構。
  • 已獲取 PostgreSQL 客戶端並上傳到 Oracle 數據庫服務器上。

操作步驟

說明:本例以將 RDS for PPAS 數據遷移到安裝在雲服務器 ECS 上的 Oracle 為例。本例中的雲服務器 ECS 操作係統為 CentOS 6.5。

  1. 在 Oracle 數據庫服務器上安裝 PostgreSQL 客戶端。

    1. [root@oraclexe ~]# yum install postgresql.x86_64
    2. [root@oraclexe ~]# /usr/bin/psql --version
    3. psql (PostgreSQL) 8.4.20
  2. 在 ECS 中配置對 RDS for PPAS 實例的無密碼登錄。

    1. [root@oraclexe ~]# vim ~/.pgpass
    2. [root@oraclexe ~]# cat ~/.pgpass
    3. rm-2ze466l5u1k657yyn.ppas.rds.aliyuncs.com:3433:ora:myadmin:xxxxxxx
    4. //參數格式為 HOSTNAME:PORT:DATABASE:USERNAME:PASSWORD
    5. [root@oraclexe ~]# chmod 0600 ~/.pgpass

    說明:配置文件 .pgpass 位於 HOME 目錄下。

  3. 測試 ECS 和 RDS for PPAS 連接。

    1. [root@oraclexe ~]# psql -h rm-2ze466l5u1k657yyn.ppas.rds.aliyuncs.com -p 3433 -U myadmin ora
    2. psql.bin (9.3.1.3, 服務器 9.3.13.37)
    3. 輸入 "help" 來獲取幫助信息.
    4. ora=>

    如果能以 ora 用戶登錄 RDS for PPAS,則連接成功。測試成功後,返回到 root 用戶。

    1. ora=> q
    2. [root@oraclexe ~]#
  4. 在 ECS 中建立數據導出腳本。

    1. 建立文件 ppas_exp_all_tables_to_csv.sh

      1. vi ppas_exp_all_tables_to_csv.sh
    2. 將如下文本插入到 ppas_exp_all_tables_to_csv.sh 腳本中。

      1. # ppas_exp_all_tables_to_csv.sh <hostname> <port> <username> <database>
      2. # Author: Xiao Shaocong (Scott Siu)
      3. # E-Mail: shaocong.xsc@alibaba-inc.com
      4. TMP_PATH="/tmp/ppas_tables_$1_$2_$3_$4"
      5. mkdir $TMP_PATH
      6. if [ $? -ne 0 ]
      7. then
      8. exit 1;
      9. fi
      10. echo "select '$1 $2 $3 $4 ' || tablename || ' $TMP_PATH ' || tablename from pg_tables where tableowner='$3' and (schemaname='$3' or schemaname='public');" > /tmp/ppas_tables_$1_$2_$3_$4.sql
      11. psql -h $1 -p $2 -U $3 $4 -f /tmp/ppas_tables_$1_$2_$3_$4.sql | head -n -2 | tail -n +3 | awk -F " " '{printf ("psql -h %s -p %s -U %s %s -c "\copy %s TO '''%s/%s''' CSV HEADER"n",$1,$2,$3,$4,$5,$6,$7)}' | sh
  5. ppas_exp_all_tables_to_csv.sh 腳本添加執行權限。

    1. [root@oraclexe ~]# chmod 0755 ppas_exp_all_tables_to_csv.sh
  6. 在 ECS 中執行數據導出腳本。

    1. [root@oraclexe ~]# ./ppas_exp_all_tables_to_csv.sh rm-2ze466l5u1k657yyn.ppas.rds.aliyuncs.com 3433 myadmin ora
  7. 驗證導出 CSV 文件的數據。

    1. [root@oraclexe ~]# cat /tmp/ppas_tables_rm-2ze466l5u1k657yyn.ppas.rds.aliyuncs.com_3433_myadmin_ora/*
    2. deptno,dname,loc
    3. 10,ACCOUNTING,NEW YORK
    4. 20,RESEARCH,DALLAS
    5. 30,SALES,CHICAGO
    6. 40,OPERATIONS,BOSTON
    7. empno,ename,job,mgr,hiredate,sal,comm,deptno
    8. 7369,SMITH,CLERK,7902,17-DEC-80 00:00:00,800.00,,20
    9. 7499,ALLEN,SALESMAN,7698,20-FEB-81 00:00:00,1600.00,300.00,30
    10. 7521,WARD,SALESMAN,7698,22-FEB-81 00:00:00,1250.00,500.00,30
    11. 7566,JONES,MANAGER,7839,02-APR-81 00:00:00,2975.00,,20
    12. 7654,MARTIN,SALESMAN,7698,28-SEP-81 00:00:00,1250.00,1400.00,30
    13. 7698,BLAKE,MANAGER,7839,01-MAY-81 00:00:00,2850.00,,30
    14. 7782,CLARK,MANAGER,7839,09-JUN-81 00:00:00,2450.00,,10
    15. 7788,SCOTT,ANALYST,7566,19-APR-87 00:00:00,3000.00,,20
    16. 7839,KING,PRESIDENT,,17-NOV-81 00:00:00,5000.00,,10
    17. 7844,TURNER,SALESMAN,7698,08-SEP-81 00:00:00,1500.00,0.00,30
    18. 7876,ADAMS,CLERK,7788,23-MAY-87 00:00:00,1100.00,,20
    19. 7900,JAMES,CLERK,7698,03-DEC-81 00:00:00,950.00,,30
    20. 7902,FORD,ANALYST,7566,03-DEC-81 00:00:00,3000.00,,20
    21. 7934,MILLER,CLERK,7782,23-JAN-82 00:00:00,1300.00,,10
    22. empno,startdate,enddate,job,sal,comm,deptno,chgdesc
    23. 7369,17-DEC-80 00:00:00,,CLERK,800.00,,20,New Hire
    24. 7499,20-FEB-81 00:00:00,,SALESMAN,1600.00,300.00,30,New Hire
    25. 7521,22-FEB-81 00:00:00,,SALESMAN,1250.00,500.00,30,New Hire
    26. 7566,02-APR-81 00:00:00,,MANAGER,2975.00,,20,New Hire
    27. 7654,28-SEP-81 00:00:00,,SALESMAN,1250.00,1400.00,30,New Hire
    28. 7698,01-MAY-81 00:00:00,,MANAGER,2850.00,,30,New Hire
    29. 7782,09-JUN-81 00:00:00,,MANAGER,2450.00,,10,New Hire
    30. 7788,19-APR-87 00:00:00,12-APR-88 00:00:00,CLERK,1000.00,,20,New Hire
    31. 7788,13-APR-88 00:00:00,04-MAY-89 00:00:00,CLERK,1040.00,,20,Raise
    32. 7788,05-MAY-90 00:00:00,,ANALYST,3000.00,,20,Promoted to Analyst
    33. 7839,17-NOV-81 00:00:00,,PRESIDENT,5000.00,,10,New Hire
    34. 7844,08-SEP-81 00:00:00,,SALESMAN,1500.00,0.00,30,New Hire
    35. 7876,23-MAY-87 00:00:00,,CLERK,1100.00,,20,New Hire
    36. 7900,03-DEC-81 00:00:00,14-JAN-83 00:00:00,CLERK,950.00,,10,New Hire
    37. 7900,15-JAN-83 00:00:00,,CLERK,950.00,,30,Changed to Dept 30
    38. 7902,03-DEC-81 00:00:00,,ANALYST,3000.00,,20,New Hire
    39. 7934,23-JAN-82 00:00:00,,CLERK,1300.00,,10,New Hire
  8. 將 CSV 導入到 Oracle。

問題處理

問題

執行數據導出腳本時,提示無法創建目錄,如下所示。

  1. [root@oraclexe ~]# ./ppas_exp_all_tables_to_csv.sh rm-2ze466l5u1k657yyn.ppas.rds.aliyuncs.com 3433 myadmin ora
  2. mkdir: 無法創建目錄"/tmp/ppas_tables_rm-2ze466l5u1k657yyn.ppas.rds.aliyuncs.com_3433_myadmin_ora": 文件已存在
處理步驟

刪除已存在的目錄。

  1. [root@oraclexe ~]# rm -rf /tmp/ppas_tables_rm-2ze466l5u1k657yyn.ppas.rds.aliyuncs.com_3433_myadmin_ora

最後更新:2016-11-23 16:04:20

  上一篇:go 遷移 RDS for PPAS 數據到本地 PPAS__數據遷移_用戶指南_雲數據庫 RDS 版-阿裏雲
  下一篇:go 緩存數據持久化__典型應用_用戶指南_雲數據庫 RDS 版-阿裏雲