bcp 用於sql server 大表大數據量快速遷移:
1、導出表數據
bcp dbo.pal_pqc out pal_pqc.dat -Usa -Ppassword -Sserver_ip -d db_name -b 100000 -c -o dbo.pal_pqc_out.log
2、條件導出表數據
bcp "select * from dbo.pal_pqc where model='LA1A'" queryout pal_pqc.dat -Usa -Ppassword -Sserver_ip -d db_name -b 100000 -c -o dbo.pal_pqc_out.log
3、導入表數據(目標表必須存在,如果源表與目標表字段格式存在差異,導入時必須指定格式化文件,格式化文件可用於建立表結構)
bcp dbo.pal_pqc_his in pal_pqc.dat -Usa -Ppassword -Sserver_ip -d db_name -b 100000 -c -o dbo.pal_pqc_his_in.log
4、導出表格式化文件(表結構信息)
bcp dbo.bobcat_slave format -Sserver_ip -Usa -Ppassword -d testdb -f bobcat_slave.xml -x
5、重要參數解釋
-n 使用數據的本機(數據庫)數據類型進行大容量復制操作,導出的數據文件為二進制模式,用於sql server 之間的數據遷移
-N 執行大容量復制操作時,對於非字符數據使用本機數據類型,對於字符數據使用Unicode 類型,導出的數據文件為字符二進制模式
-c 使用字符執行大容量復制操作,使用char作為存儲類型,導出的數據文件為字符模式,可以用於sql server 與非sql server 之間的數據遷移
-w 使用 Unicode 字符執行大容量復制操作,使用nchar作為存儲類型,導出的數據文件為字符模式
-k 指定在操作過程中空列應該保留 null 值,而不是所插入列的任何默認值
-b 指定每批導入數據的行數,每個批次均作為一個單獨的事務進行導入並記錄,在提交之前會導入整批,默認情況下,數據文件中的所有行均作為一個批次導入
-o 將日志記錄到文件
-f 如果是bcp format則指生成的格式化文件名,如果是bcp in 則指要使用的格式化文件
-x 生成xml格式的格式化文件
-T 使用本機登陸的windows賬號連接數據庫,不用指定數據庫的用戶名、密碼
6、加快bcp表數據導入速度的措施:
a、刪除表上索引,導入完成后再並行建立索引;
b、將數據庫恢復模式調整為大容量日志恢復模式以減少導入期間的事務日志生成量,導入完成后調整為完整恢復模式並立即進行數據庫備份;