『壹』 執行一sql腳本如,怎麼樣才能輸出執行日誌到文本文件中
執行一SQL腳本如,怎麼樣才能輸出執行日誌到文本文件中
這個方法可以,要在sqlplus的環境里執行,
也可以直接在cmd里執行
sqlplus "username/password@tnaname"@abc.sql > result.log
比如
sqlplus "test1/test@orcl"@test.sql > result.log
『貳』 linux 備份結果輸出到日誌腳本
給你講一下Linux下的
先創建個嫌隱賀備份腳本的文件保存為backup.sh,然後讓corn在指定時間運行就可以了
備份腳本內容:
cp -r 日誌目錄 要備份的目錄
tar -zcvf bak$(date +%Y%m%d).tar.gz 要備份的目錄 //將數據所在文件夾bak打包
呵呵,很簡單,攜卜復制、打包就ok了
然後就是計劃任務了
修改crontab內容
#crontab -e
* * * * * /腳本所在完整路徑/backup.sh
如:22 11 1 * * /home/backup.sh 就是每月的1號11點22分執行home下的backup.sh腳本
前面五個欄位分別表示分鍾、小時、日、月、星期幾(0-6)後面的為腳本所在目錄
3,重新啟動crond服務
#service crond restart
如果沒有安裝crond服務就先裝上服務再說,用service crond status可以查看該服務狀態
windows的也是差不多,也是復制打包芹派的,然後就計劃任務就ok了
『叄』 如果需要從oracle中每天定時導出數據用什麼方法
1、創建資料庫日誌表導出為文叢巧本文件的腳本tabout.ctl或tabout.sql
注意:該日誌導出後在c:HttpLog目錄下
tabout.ctl腳本內容如下:
SET NEWPAGE NONE
SET HEADING OFF
SET TERM OFF
SET SPACE 0
SET PAGESIZE 0
SET TRIMOUT ON
SET TRIMSPOOL ON
SET LINESIZE 2500
set feedback off
set echo off
SET VERIFY OFF
column v_date new_value filename;
select to_char(sysdate,'yyyymmdd') || '.log' v_date from al;
spool ..HttpLog&&filename
select id||','||name from orcluser.test;
spool off;
exit;
2、創建調用該腳本的logout.bat文件
logout.bat內容如下:
mkdir ..HttpLog
C:oracleora92insqlplus orcluser/orcl @C:Oracleout.ctl
說明:該bat文件直接在當前目錄下創建名為HttpLog的文件夾,以便tabout.ctl腳本輸出的文件存放到該目錄下。其通過調用Oracle中sqlplus可執行文件來執行tabout.ctl腳本,所以該文件直接雙擊即可運行,無需其他操作。
3、通過windows定時任務實現自動定期執行坦鄭兄
「在控制面板——任務計劃——添加任務計劃」中建立定期將資料庫中日誌表數據導出為文本格式(如:你可以根據需求設置為每天對日誌表數據進行導出)。根據你當前讓襲對日誌文件路徑的存儲需求,修改上面兩個腳本中的存儲路徑,在windows定時任務直接調用logout.bat文件執行即可。
『肆』 Windows平台使用bat腳本導出日誌
android平台測試過程中兄襪,經常要及時導出日誌,對現場截圖。導出了日誌後,又要給日誌重命名或羨拍激加一些問題描述,不然導出多了,容易忘記哪個對應哪個日誌。
不妨使用下面的腳本。
說明:日誌將保存到D盤根目錄下
@echo off
echo.
echo ---------------- Android導出日誌到本機 -----------------
echo.
pause
@adb devices | findstr "<device>"
if ERRORLEVEL 1 goto NOCONNECTED
adb root
adb remount
echo "是否需要截圖(Y/N)"
set /p choice=
if "%choice%"=="y" (
echo.
echo.
adb shell screencap -p /sdcard/screencap.png
)
echo.
echo.
set /p prob_time=請輸入問題發生時間點:
set /p desc=請輸入問題簡述:
echo ----------------切換到D盤 ----------------
D:
set YYYYmmdd=%date: 0,4%%date: 5,2%%date:~8,2%
set hhmiss=%time: 0,2%%time: 3,2%%time:~6,2%
set "filename=%desc% %YYYYmmdd% %hhmiss%"
echo.
echo.
echo -----創建日誌目錄Android_%YYYYmmdd% %hhmiss% %desc% Log----
::創建文件夾
md ".Android %YYYYmmdd% %hhmiss% %desc% Log"
cd "..Android %YYYYmmdd% %hhmiss% %desc% Log"
echo.
echo.
::寫入問題描述
echo. >> 問題描述.txt
echo. >> 問題描述.txt
echo. >> 問題描述.txt
echo 問題出現時間: >> 問題描述.txt
echo %prob_time% >> 問題描述.txt
echo. >> 問題描述.txt
echo 問題現象描述: >> 問題描述.txt
echo %desc% >> 問賀殲題描述.txt
echo.
echo.
echo ----------------導出日誌文件 ----------------
echo.
echo.
echo -----導出log0到D:/Android %YYYYmmdd% %hhmiss% %desc% Log----
adb pull /data/Log/log0
echo.
echo.
echo -----導出log1到D:/Android %YYYYmmdd% %hhmiss% %desc%_Log----
adb pull /data/Log/log1
if "%choice%"=="y" (
echo.
adb pull /sdcard/screencap.png
adb shell rm /sdcard/screencap.png
ren screencap.png "screencap_%desc%.png"
)
echo.
echo.
echo ----------------"Android日誌到本機路徑:D:/Android_%YYYYmmdd% %hhmiss% %desc%_Log" ----------------
echo.
echo.
set /p desc_details=請輸入問題詳細描述:
echo. >> 問題描述.txt
echo 問題現象詳細描述: >> 問題描述.txt
echo %desc_details% >> 問題描述.txt
echo.
echo.
echo ---------------- Android日誌導出到本機完成,按任意鍵退出 ----------------
echo.
::等待2秒後退出
ping 192.0.2.2 -n 1 -w 2000 > nul
exit
:NOCONNECTED
echo.
echo ------- 設備未連接,請檢查!-------
echo.
ping 192.0.2.2 -n 1 -w 2000 > nul
exit
『伍』 oracle sqlplus導入數據腳本 如何輸出日誌
如果用命令,需要在命令提示符下操作,如果用PLSQL的話,直接有導出工具,各自方法如下:命令提示符
『陸』 如何讓crontab執行腳本後並且把日誌輸出到另一個文件
直接crontab -e添加執行腳本,然後給執行腳本加個重定向到文件就行了。
例如:3023***/path/to/shell/script >> /path/to/log/file #表示每晚的23:30執行/path/to/shell/script腳本,並且把結果重定向輸出到/path/to/log/file文件。
crontab參數:
-e:編輯該用戶的計時器設置;
-l:列出該用戶的計時器設置;
-r:刪除該用戶的計時器設置;
-u<用戶名稱>:指定讓核迅要設定計時器的用戶名稱。
crontab的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,格式如下: minute hour day month week command,時間欄位都是整數, command:要執行的命令,可以是系統命令,也可以是自己編寫的shell腳本文件。 在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,坦此全部。
逗號(,):可以用逗號隔開的值指定一個列表范圍。
中杠(-):可以用整數之間的中杠表示一個整數范圍。
正斜線(/):可以用正斜線指定時間的間隔頻率。
『柒』 Shell腳本如何鏈接資料庫並導出數據
介紹
在日常維護工作當中經常會需要對數據進行導出操作,而mysqlmp是導出數據過程中使用非常頻繁的一個工具;它自帶的功能參數非常多,文章中會列舉出一些常用的操作,在文章末尾會將所有的參數詳細說明列出來。
語法:
默認不帶參數的導出,導出文本內容大概如下:創建資料庫判斷語句-刪除表-創建表-鎖表-禁用索引-插入數據-啟用索引-解鎖表。
Usage: mysqlmp [OPTIONS] database [tables]
OR mysqlmp [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqlmp [OPTIONS] --all-databases [OPTIONS]
插入測試數據
復制代碼
CREATE DATABASE db1 DEFAULT CHARSET utf8;
USE db1;
CREATE TABLE a1(id int);
insert into a1() values(1),(2);
CREATE TABLE a2(id int);
insert into a2() values(2);
CREATE TABLE a3(id int);
insert into a3() values(3);
CREATE DATABASE db2 DEFAULT CHARSET utf8;
USE db2;
CREATE TABLE b1(id int);
insert into b1() values(1);
CREATE TABLE b2(id int);
insert into b2() values(2);
復制代碼
1.導出所有資料庫
該命令會導出包括系統資料庫在內的所有資料庫
mysqlmp -uroot -proot --all-databases >/tmp/all.sql
2.導出db1、db2兩個資料庫的所有數據
mysqlmp -uroot -proot --databases db1 db2 >/tmp/user.sql
3.導出db1中的a1、a2表
注意導出指定表只能針對一個資料庫進行導出,且導出的內容中和導出資料庫也不一樣,導出指定表的導出文本中沒有創建資料庫的判斷語句,只有刪除表-創建表-導入數據
mysqlmp -uroot -proot --databases db1 --tables a1 a2 >/tmp/db1.sql
4.條件導出,導出db1表a1中id=1的數據
如果多個表的條件相同可以一次性導出多個表
欄位是整形
mysqlmp -uroot -proot --databases db1 --tables a1 --where='id=1' >/tmp/a1.sql
欄位是字元串,並且導出的sql中不包含drop table,create table
mysqlmp -uroot -proot --no-create-info --databases db1 --tables a1 --where="id='a'" >/tmp/a1.sql
5.生成新的binlog文件,-F
有時候會希望導出數據之後生成一個新的binlog文件,只需要加上-F參數即可
mysqlmp -uroot -proot --databases db1 -F >/tmp/db1.sql
6.只導出表結構不導出數據,--no-data
mysqlmp -uroot -proot --no-data --databases db1 >/tmp/db1.sql
7.跨伺服器導出導入數據
mysqlmp --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2
將h1伺服器中的db1資料庫的所有數據導入到h2中的db2資料庫中,db2的資料庫必須存在否則會報錯
mysqlmp --host=192.168.80.137 -uroot -proot -C --databases test |mysql --host=192.168.80.133 -uroot -proot test
加上-C參數可以啟用壓縮傳遞。
8.將主庫的binlog位置和文件名追加到導出數據的文件中,--mp-slave
注意:--mp-slave命令如果當前伺服器是從伺服器那麼使用該命令會執行stop slave來獲取master binlog的文件和位置,等備份完後會自動執行start slave啟動從伺服器。但是如果是大的數據量備份會給從和主的延時變的更大,使用--mp-slave獲取到的只是當前的從伺服器的數據執行到的主的binglog的位置是(relay_mater_log_file,exec_master_log_pos),而不是主伺服器當前的binlog執行的位置,主要是取決於主從的數據延時。
該參數在在從伺服器上執行,相當於執行show slave status。當設置為1時,將會以CHANGE MASTER命令輸出到數據文件;設置為2時,會在change前加上注釋。
該選項將會打開--lock-all-tables,除非--single-transaction被指定。
在執行完後會自動關閉--lock-tables選項。--mp-slave默認是1
mysqlmp -uroot -proot --mp-slave=1 --databases db1 >/tmp/db1.sql
mysqlmp -uroot -proot --mp-slave=2 --database db1 >/tmp/db1.sql
9.將當前伺服器的binlog的位置和文件名追加到輸出文件,--master-data
該參數和--mp-slave方法一樣,只是它是記錄的是當前伺服器的binlog,相當於執行show master status,狀態(file,position)的值。
注意:--master-data不會停止當前伺服器的主從服務
10.--opt
等同於--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 該選項默認開啟, 可以用--skip-opt禁用.
mysqlmp -uroot -p --host=localhost --all-databases --opt
11.保證導出的一致性狀態--single-transaction
該選項在導出數據之前提交一個BEGIN SQL語句,BEGIN 不會阻塞任何應用程序且能保證導出時資料庫的一致性狀態。它只適用於多版本存儲引擎(它不顯示加鎖通過判斷版本來對比數據),僅InnoDB。本選項和--lock-tables 選項是互斥的,因為LOCK TABLES 會使任何掛起的事務隱含提交。要想導出大表的話,應結合使用--quick 選項。
--quick, -q
不緩沖查詢,直接導出到標准輸出。默認為打開狀態,使用--skip-quick取消該選項。
12.--lock-tables, -l
開始導出前,鎖定所有表。用READ LOCAL鎖定表以允許MyISAM表並行插入。對於支持事務的表例如InnoDB和BDB,--single-transaction是一個更好的選擇,因為它根本不需要鎖定表。
請注意當導出多個資料庫時,--lock-tables分別為每個資料庫鎖定表。因此,該選項不能保證導出文件中的表在資料庫之間的邏輯一致性。不同資料庫表的導出狀態可以完全不同。
13.導出存儲過程和自定義函數--routines, -R
mysqlmp -uroot -p --host=localhost --all-databases --routines
14.壓縮備份
壓縮備份
mysqlmp -uroot -proot --databases abc 2>/dev/null |gzip >/abc.sql.gz
還原
gunzip -c abc.sql.gz |mysql -uroot -proot abc
參數說明:
復制代碼
--all-databases , -A
導出全部資料庫。
mysqlmp -uroot -p --all-databases
--all-tablespaces , -Y
導出全部表空間。
mysqlmp -uroot -p --all-databases --all-tablespaces
--no-tablespaces , -y
不導出任何錶空間信息。
mysqlmp -uroot -p --all-databases --no-tablespaces
--add-drop-database
每個資料庫創建之前添加drop資料庫語句。
mysqlmp -uroot -p --all-databases --add-drop-database
--add-drop-table
每個數據表創建之前添加drop數據表語句。(默認為打開狀態,使用--skip-add-drop-table取消選項)
mysqlmp -uroot -p --all-databases (默認添加drop語句)
mysqlmp -uroot -p --all-databases –skip-add-drop-table (取消drop語句)
--add-locks
在每個表導出之前增加LOCK TABLES並且之後UNLOCK TABLE。(默認為打開狀態,使用--skip-add-locks取消選項)
mysqlmp -uroot -p --all-databases (默認添加LOCK語句)
mysqlmp -uroot -p --all-databases –skip-add-locks (取消LOCK語句)
--allow-keywords
允許創建是關鍵詞的列名字。這由表名前綴於每個列名做到。
mysqlmp -uroot -p --all-databases --allow-keywords
--apply-slave-statements
在'CHANGE MASTER'前添加'STOP SLAVE',並且在導出的最後添加'START SLAVE'。
mysqlmp -uroot -p --all-databases --apply-slave-statements
--character-sets-dir
字元集文件的目錄
mysqlmp -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets
--comments
附加註釋信息。默認為打開,可以用--skip-comments取消
mysqlmp -uroot -p --all-databases (默認記錄注釋)
mysqlmp -uroot -p --all-databases --skip-comments (取消注釋)
--compatible
導出的數據將和其它資料庫或舊版本的MySQL 相兼容。值可以為ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等,
要使用幾個值,用逗號將它們隔開。它並不保證能完全兼容,而是盡量兼容。
mysqlmp -uroot -p --all-databases --compatible=ansi
--compact
導出更少的輸出信息(用於調試)。去掉注釋和頭尾等結構。可以使用選項:--skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys
mysqlmp -uroot -p --all-databases --compact
--complete-insert, -c
使用完整的insert語句(包含列名稱)。這么做能提高插入效率,但是可能會受到max_allowed_packet參數的影響而導致插入失敗。
mysqlmp -uroot -p --all-databases --complete-insert
--compress, -C
在客戶端和伺服器之間啟用壓縮傳遞所有信息
mysqlmp -uroot -p --all-databases --compress
--create-options, -a
在CREATE TABLE語句中包括所有MySQL特性選項。(默認為打開狀態)
mysqlmp -uroot -p --all-databases
--databases, -B
導出幾個資料庫。參數後面所有名字參量都被看作資料庫名。
mysqlmp -uroot -p --databases test mysql
--debug
輸出debug信息,用於調試。默認值為:d:t,/tmp/mysqlmp.trace
mysqlmp -uroot -p --all-databases --debug
mysqlmp -uroot -p --all-databases --debug=」 d:t,/tmp/debug.trace」
--debug-check
檢查內存和打開文件使用說明並退出。
mysqlmp -uroot -p --all-databases --debug-check
--debug-info
輸出調試信息並退出
mysqlmp -uroot -p --all-databases --debug-info
--default-character-set
設置默認字元集,默認值為utf8
mysqlmp -uroot -p --all-databases --default-character-set=utf8
--delayed-insert
採用延時插入方式(INSERT DELAYED)導出數據
mysqlmp -uroot -p --all-databases --delayed-insert
--delete-master-logs
master備份後刪除日誌. 這個參數將自動激活--master-data。
mysqlmp -uroot -p --all-databases --delete-master-logs
--disable-keys
對於每個表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;語句引用INSERT語句。這樣可以更快地導入mp出來的文件,因為它是在插入所有行後創建索引的。該選項只適合MyISAM表,默認為打開狀態。
mysqlmp -uroot -p --all-databases
--mp-slave
該選項將主的binlog位置和文件名追加到導出數據的文件中(show slave status)。設置為1時,將會以CHANGE MASTER命令輸出到數據文件;設置為2時,會在change前加上注釋。該選項將會打開--lock-all-tables,除非--single-transaction被指定。該選項會自動關閉--lock-tables選項。默認值為0。
mysqlmp -uroot -p --all-databases --mp-slave=1
mysqlmp -uroot -p --all-databases --mp-slave=2
--master-data
該選項將當前伺服器的binlog的位置和文件名追加到輸出文件中(show master status)。如果為1,將會輸出CHANGE MASTER 命令;如果為2,輸出的CHANGE MASTER命令前添加註釋信息。該選項將打開--lock-all-tables 選項,除非--single-transaction也被指定(在這種情況下,全局讀鎖在開始導出時獲得很短的時間;其他內容參考下面的--single-transaction選項)。該選項自動關閉--lock-tables選項。
mysqlmp -uroot -p --host=localhost --all-databases --master-data=1;
mysqlmp -uroot -p --host=localhost --all-databases --master-data=2;
--events, -E
導出事件。
mysqlmp -uroot -p --all-databases --events
--extended-insert, -e
使用具有多個VALUES列的INSERT語法。這樣使導出文件更小,並加速導入時的速度。默認為打開狀態,使用--skip-extended-insert取消選項。
mysqlmp -uroot -p --all-databases
mysqlmp -uroot -p --all-databases--skip-extended-insert (取消選項)
--fields-terminated-by
導出文件中忽略給定欄位。與--tab選項一起使用,不能用於--databases和--all-databases選項
mysqlmp -uroot -p test test --tab=」/home/mysql」 --fields-terminated-by=」#」
--fields-enclosed-by
輸出文件中的各個欄位用給定字元包裹。與--tab選項一起使用,不能用於--databases和--all-databases選項
mysqlmp -uroot -p test test --tab=」/home/mysql」 --fields-enclosed-by=」#」
--fields-optionally-enclosed-by
輸出文件中的各個欄位用給定字元選擇性包裹。與--tab選項一起使用,不能用於--databases和--all-databases選項
mysqlmp -uroot -p test test --tab=」/home/mysql」 --fields-enclosed-by=」#」 --fields-optionally-enclosed-by =」#」
--fields-escaped-by
輸出文件中的各個欄位忽略給定字元。與--tab選項一起使用,不能用於--databases和--all-databases選項
mysqlmp -uroot -p mysql user --tab=」/home/mysql」 --fields-escaped-by=」#」
--flush-logs
開始導出之前刷新日誌。
請注意:假如一次導出多個資料庫(使用選項--databases或者--all-databases),將會逐個資料庫刷新日誌。除使用--lock-all-tables或者--master-data外。在這種情況下,日誌將會被刷新一次,相應的所以表同時被鎖定。因此,如果打算同時導出和刷新日誌應該使用--lock-all-tables 或者--master-data 和--flush-logs。
mysqlmp -uroot -p --all-databases --flush-logs
--flush-privileges
在導出mysql資料庫之後,發出一條FLUSH PRIVILEGES 語句。為了正確恢復,該選項應該用於導出mysql資料庫和依賴mysql資料庫數據的任何時候。
mysqlmp -uroot -p --all-databases --flush-privileges
--force
在導出過程中忽略出現的SQL錯誤。
mysqlmp -uroot -p --all-databases --force
--help
顯示幫助信息並退出。
mysqlmp --help
--hex-blob
使用十六進制格式導出二進制字元串欄位。如果有二進制數據就必須使用該選項。影響到的欄位類型有BINARY、VARBINARY、BLOB。
mysqlmp -uroot -p --all-databases --hex-blob
--host, -h
需要導出的主機信息
mysqlmp -uroot -p --host=localhost --all-databases
--ignore-table
不導出指定表。指定忽略多個表時,需要重復多次,每次一個表。每個表必須同時指定資料庫和表名。例如:--ignore-table=database.table1 --ignore-table=database.table2 ……
mysqlmp -uroot -p --host=localhost --all-databases --ignore-table=mysql.user
--include-master-host-port
在--mp-slave產生的'CHANGE MASTER TO..'語句中增加'MASTER_HOST=<host>,MASTER_PORT=<port>'
mysqlmp -uroot -p --host=localhost --all-databases --include-master-host-port
--insert-ignore
在插入行時使用INSERT IGNORE語句.
mysqlmp -uroot -p --host=localhost --all-databases --insert-ignore
--lines-terminated-by
輸出文件的每行用給定字元串劃分。與--tab選項一起使用,不能用於--databases和--all-databases選項。
mysqlmp -uroot -p --host=localhost test test --tab=」/tmp/mysql」 --lines-terminated-by=」##」
--lock-all-tables, -x
提交請求鎖定所有資料庫中的所有表,以保證數據的一致性。這是一個全局讀鎖,並且自動關閉--single-transaction 和--lock-tables 選項。
mysqlmp -uroot -p --host=localhost --all-databases --lock-all-tables
--lock-tables, -l
開始導出前,鎖定所有表。用READ LOCAL鎖定表以允許MyISAM表並行插入。對於支持事務的表例如InnoDB和BDB,--single-transaction是一個更好的選擇,因為它根本不需要鎖定表。
請注意當導出多個資料庫時,--lock-tables分別為每個資料庫鎖定表。因此,該選項不能保證導出文件中的表在資料庫之間的邏輯一致性。不同資料庫表的導出狀態可以完全不同。
mysqlmp -uroot -p --host=localhost --all-databases --lock-tables
--log-error
附加警告和錯誤信息到給定文件
mysqlmp -uroot -p --host=localhost --all-databases --log-error=/tmp/mysqlmp_error_log.err
--max_allowed_packet
伺服器發送和接受的最大包長度。
mysqlmp -uroot -p --host=localhost --all-databases --max_allowed_packet=10240
--net_buffer_length
TCP/IP和socket連接的緩存大小。
mysqlmp -uroot -p --host=localhost --all-databases --net_buffer_length=1024
--no-autocommit
使用autocommit/commit 語句包裹表。
mysqlmp -uroot -p --host=localhost --all-databases --no-autocommit
--no-create-db, -n
只導出數據,而不添加CREATE DATABASE 語句。
mysqlmp -uroot -p --host=localhost --all-databases --no-create-db
--no-create-info, -t
只導出數據,而不添加CREATE TABLE 語句。
mysqlmp -uroot -p --host=localhost --all-databases --no-create-info
--no-data, -d
不導出任何數據,只導出資料庫表結構。
mysqlmp -uroot -p --host=localhost --all-databases --no-data
--no-set-names, -N
等同於--skip-set-charset
mysqlmp -uroot -p --host=localhost --all-databases --no-set-names
--opt
等同於--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 該選項默認開啟, 可以用--skip-opt禁用.
mysqlmp -uroot -p --host=localhost --all-databases --opt
--order-by-primary
如果存在主鍵,或者第一個唯一鍵,對每個表的記錄進行排序。在導出MyISAM表到InnoDB表時有效,但會使得導出工作花費很長時間。
mysqlmp -uroot -p --host=localhost --all-databases --order-by-primary
--password, -p
連接資料庫密碼
--pipe(windows系統可用)
使用命名管道連接mysql
mysqlmp -uroot -p --host=localhost --all-databases --pipe
--port, -P
連接資料庫埠號
--protocol
使用的連接協議,包括:tcp, socket, pipe, memory.
mysqlmp -uroot -p --host=localhost --all-databases --protocol=tcp
--quick, -q
不緩沖查詢,直接導出到標准輸出。默認為打開狀態,使用--skip-quick取消該選項。
mysqlmp -uroot -p --host=localhost --all-databases
mysqlmp -uroot -p --host=localhost --all-databases --skip-quick
--quote-names,-Q
使用(`)引起表和列名。默認為打開狀態,使用--skip-quote-names取消該選項。
mysqlmp -uroot -p --host=localhost --all-databases
mysqlmp -uroot -p --host=localhost --all-databases --skip-quote-names
--replace
使用REPLACE INTO 取代INSERT INTO.
mysqlmp -uroot -p --host=localhost --all-databases --replace
--result-file, -r
直接輸出到指定文件中。該選項應該用在使用回車換行對(\\r\\n)換行的系統上(例如:DOS,Windows)。該選項確保只有一行被使用。
mysqlmp -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqlmp_result_file.txt
--routines, -R
導出存儲過程以及自定義函數。
mysqlmp -uroot -p --host=localhost --all-databases --routines
--set-charset
添加'SET NAMES default_character_set'到輸出文件。默認為打開狀態,使用--skip-set-charset關閉選項。
mysqlmp -uroot -p --host=localhost --all-databases
mysqlmp -uroot -p --host=localhost --all-databases --skip-set-charset
--single-transaction
該選項在導出數據之前提交一個BEGIN SQL語句,BEGIN 不會阻塞任何應用程序且能保證導出時資料庫的一致性狀態。它只適用於多版本存儲引擎,僅InnoDB。本選項和--lock-tables 選項是互斥的,因為LOCK TABLES 會使任何掛起的事務隱含提交。要想導出大表的話,應結合使用--quick 選項。
mysqlmp -uroot -p --host=localhost --all-databases --single-transaction
--mp-date
將導出時間添加到輸出文件中。默認為打開狀態,使用--skip-mp-date關閉選項。
mysqlmp -uroot -p --host=localhost --all-databases
mysqlmp -uroot -p --host=localhost --all-databases --skip-mp-date
--skip-opt
禁用–opt選項.
mysqlmp -uroot -p --host=localhost --all-databases --skip-opt
--socket,-S
指定連接mysql的socket文件位置,默認路徑/tmp/mysql.sock
mysqlmp -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock
--tab,-T
為每個表在給定路徑創建tab分割的文本文件。注意:僅僅用於mysqlmp和mysqld伺服器運行在相同機器上。注意使用--tab不能指定--databases參數
mysqlmp -uroot -p --host=localhost test test --tab="/home/mysql"
--tables
覆蓋--databases (-B)參數,指定需要導出的表名,在後面的版本會使用table取代tables。
mysqlmp -uroot -p --host=localhost --databases test --tables test
--triggers
導出觸發器。該選項默認啟用,用--skip-triggers禁用它。
mysqlmp -uroot -p --host=localhost --all-databases --triggers
--tz-utc
在導出頂部設置時區TIME_ZONE='+00:00' ,以保證在不同時區導出的TIMESTAMP 數據或者數據被移動其他時區時的正確性。
mysqlmp -uroot -p --host=localhost --all-databases --tz-utc
--user, -u
指定連接的用戶名。
--verbose, --v
輸出多種平台信息。
--version, -V
輸出mysqlmp版本信息並退出
--where, -w
只轉儲給定的WHERE條件選擇的記錄。請注意如果條件包含命令解釋符專用空格或字元,一定要將條件引用起來。
mysqlmp -uroot -p --host=localhost --all-databases --where=」 user=』root』」
--xml, -X
導出XML格式.
mysqlmp -uroot -p --host=localhost --all-databases --xml
--plugin_dir
客戶端插件的目錄,用於兼容不同的插件版本。
mysqlmp -uroot -p --host=localhost --all-databases --plugin_dir=」/usr/local/lib/plugin」
--default_auth
客戶端插件默認使用許可權。
mysqlmp -uroot -p --host=localhost --all-databases --default-auth=」/usr/local/lib/plugin/<PLUGIN>」
復制代碼
錯誤處理
1.unknown option '--no-beep'
第一種方法:刪除my.ini[client]下的 no-beep 參數;
第二種方法:在 mysqlmp 後加--no-defaults參數 。
總結
文章中列舉了一些常用的導出操作,還有很多其它的參數也會經常用到,包括「--add-drop-database」,「--apply-slave-statements」,「--triggers」等。客戶端的導入導出功能也是不錯的選擇,比如workbench、navicat;其中navicat的導出向導中可以有很多文件格式可以選擇。
--tab的快速導出導入數據是個不錯的方法,它會在指定的目錄下生成一個sql表結構文件和一個text數據文件
『捌』 Oracle在導出全庫的時候如何同時導出「導出日誌」
方法如下:
你的%date%里邊包含空格。會將log文件隔開;
嘗試使用下面的腳本:expuers/password@orclfile=d:\%date:~2,8%.dmplog=%date:~2,8%.log
『玖』 shell日誌查詢腳本怎麼寫
shell日誌處理一般可以利用grep,awk命令就可以進行查詢了。一般利用grep命令篩選要統計的選項,然後利用awk把篩選出的數據進行最後統計。
『拾』 如何用語句查詢到剛剛執行的.sql腳本的SqlServer日誌
1、Lumigent Log Explorer for SQL Server v4.0.2 特別版下載地址
http://down.chinaz.com/soft/7887.htm
Log Explorer for SQL Server 4.2 注冊碼
wv5rc-uxvpz-e33-nr4694qs2
2、Log Explorer for SQL Server v4.0.2
安裝完畢後,注冊該程序(壓縮文件有注冊機)
打開log explorer file=>attach log file->選擇伺服器和登陸方式->connect->
選擇資料庫->attach->左面對話框中browse->view log->就可以看到log記錄了
點擊「View DDL Commands」裡面就有很多drop table 命令
點擊下面的「undo」按鈕是生成表結構的語句(create table ....)
點擊下面的「Salvage」按鈕是生成插入語句的(insert into ...values....)
想恢復的話: 右鍵log記錄 undo transation->選擇保存文件名和路徑->然後打開該文件到查詢分析器里執行T-sql代碼就可以了
例如 如果log是delete table where ...的話,生成的文件代碼就是insert table ....
log explorer使用的幾個問題
1)、對資料庫做了完全、差異和日誌備份
備份時選用了刪除事務日誌中不活動的條目
再用Log explorer打試圖看日誌時
提示No log recorders found that match the filter,would you like to view unfiltered data
選擇yes,就看不到剛才的記錄了
如果不選用了刪除事務日誌中不活動的條目
再用Log explorer打試圖看日誌時,就能看到原來的日誌
2)、修改了其中一個表中的部分數據,此時用Log explorer看日誌,可以作日誌恢復
3)、然後恢復備份,(注意:恢復是斷開log explorer與資料庫的連接,或連接到其他數據上,
否則會出現資料庫正在使用無法恢復)
恢復完後,再打開log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data
選擇yes,就看不到剛才在2中修改的日誌記錄,所以無法做恢復.
4)、不要用SQL的備份功能備份,搞不好你的日誌就破壞了.
正確的備份方法是:
停止SQL服務,復制數據文件及日誌文件進行文件備份.
然後啟動SQL服務,用log explorer恢復數據
5)、如果你的資料庫的日誌恢復模型是simple,那就不可能用log explorer恢復
6)、Log explorer必須安裝在要恢復資料庫的sql server伺服器上,或者在sql server伺服器上安裝服務端,在操作的電腦上安裝客戶端進行數據恢復
3、如果數據量比較大的話,使用磁帶機和集群的話,安裝了正版的VERITAS ,恢復數據是比較好的方法。
下面是該軟體重要的新功能:
1)、災難恢復演習(Disaster Recovery Fire Drill)--能夠自由測試、規劃和檢驗災難恢復計劃,而不會中斷生產過程。
2)、集群模擬器(Cluster Simulator)--可測試應用故障切換方案,以驗證應用的可用性,確認應用是否根據計劃的故障切換策略和應用需求,遷移到最適當的伺服器。
3)、全局集群選件(Global Cluster Option)--當可用性要求從本地遷移到廣域災難恢復時,能夠快速、輕松地升級到任何體系結構。
4)、即時訪問復制數據--在復制數據的同時,能夠即時訪問數據,只佔用客戶的部分可用存儲容量。
5)、卷復制顧問工具(Volume Replicator Advisor)--准確地分析帶寬需求,確保應用得到優化。
4、幾點恢復數據心得:
1)、平時需要做好雙機熱備份,日備份,月備份,年備份,數據復制,異常記錄等工作,在數據丟失的情況下才能做到心中不急。
2)、如果硬碟損害錯誤,或者誤刪除資料庫的時候,可以考慮用Easyrecovery或者Recover4all等軟體恢復刪除或者受到損害的文件,再恢復數據。
3)、如果實在遇到自然因素,網路又斷開了復制操作的情況下,建議只有手工"造取"一批數據出來彌補丟失數據,一般選取類似緯度(如時間、區域等)的數據。