㈠ 如何編寫sql備份表語句
備份表是資料庫管理中的重要步驟。以下是針對不同資料庫系統編寫備份表語句的方法:
SQL Server
使用SELECT INTO語句復製表數據到新表,然後使用BACKUP DATABASE命令備份整個資料庫至文件。
MySQL
使用SELECT INTO OUTFILE語句導出表數據至文件,接著使用mysqlmp命令備份資料庫至文件。
Oracle
同樣使用SELECT INTO語句復制數據至新表,接下來通過expdp命令備份整個資料庫至文件。
SQLite
使用SELECT INTO語句將表數據復制到新表,然後使用sqlite3命令備份資料庫至文件。
PostgreSQL
使用pg_mp命令備份表結構和數據至文件。這命令僅備份名為original_table的表,若需備份整個資料庫,可省略-t參數。
在執行備份時應關注數據一致性,最好在事務中操作,以防備份過程中的錯誤導致數據不一致。備份後,可通過LOAD DATA INFILE(MySQL)、SQL Server Management Studio(SQL Server和Oracle)導入備份文件至新表,或使用mysqlmp、BACKUP DATABASE(SQL Server)或expdp命令備份整個資料庫至文件。
㈡ 在sql資料庫屬性里刪除帳套有什麼影響
手動清除法
執行命令「mp transaction」來清除Log。以下兩條命令都可以清除日誌:
mp transaction with truncate_only
mp transaction with no_log
通常刪除事務日誌中不活躍的部分可使用「mp transaction with trancate_only」命令,這條命令寫進事務日誌時,還要做必要的並發性檢查。SYBASE提供「mp transaction with no_log」來處理某些非常緊迫的情況,使用這條命令有很大的危險性,SQL Server會彈出一條警告信息。為了盡量確保資料庫的一致性,你應將它作為「最後一招」。
以上兩種方法只是清除日誌,而不做日誌備份,若想備份日誌,應執行「mp transaction database_name to mpdevice」命令。
清除後對資料庫沒有影響
㈢ 如何判斷mysqlmp的成功與失敗
mysql資料庫的備份
用mysql的mysqlmp --flush-logs --master-data=2 --single-transaction -h $host --port $port -R --quick -u$user -p$pwd --database test| gzip -9 > $abc.tar.gz就能實現數據備份
遇到一個問題,如何能判斷mysql自己的mysqlmp成功還是失敗了呢,最後發現mysqlmp有一個屬性--log-error
這個屬性可以把mysqlmp的出現的warning和error日誌寫到指定的文件中,判斷文件有沒有warning信息和error信息就行
但是用臨時文件似乎有點多餘,能不能直接在shell裡面獲取musqlmp的值呢
然後看到http://www.cnblogs.com/kevintian/articles/1139118.html 這篇帖子 見子目錄的mysql日誌
裡面有一節
3. 錯誤日誌
該日誌文件包含了當mysqld啟動和停止時,以及伺服器在運行過程中發生任何嚴重錯誤時的相關信息。可以用--log-error[=file_name]選項來指定mysqld保存錯誤日誌文件的位置。
當使用mysqld_safe啟動伺服器時,該腳本自動在啟動項上加上--log-error但沒有加上file_name,或者直接在libexec目錄下使用./mysqld --user=mysql --log-error啟動伺服器,此時沒有給定file_name值,mysqld將使用錯誤日誌名host_name.err 並在數據目錄中寫入日誌文件。
將錯誤信息寫入錯誤日誌文件的原理是,伺服器將對標准錯誤輸出重定向到該日誌文件,所以如果不指定--log-error,錯誤被寫入標准錯誤輸出stderr,通常標准輸出為你的終端。如果在程序中有printf等語句的話,這些函數列印出的信息也被寫入該日誌文件。
如果執行FLUSH LOGS,錯誤日誌用-old重新命名後綴並且mysqld創建一個新的空日誌文件。如第一次生成的錯誤日誌為:linux-8tpn.err。執行該命令後將該文件重命名為:linux-8tpn.err-old。
這說明我們只要在不指定--log-error的情況下,能獲取到stderr的信息就可以了。那如何獲取stderr的信息呢
參考http://my.oschina.net/qihh/blog/55308進行詳細了解
發現還是實現不了通過變數來獲取mysqlmp的異常信息,就採用--log-error的方式了
grep "mysqlmp1" abc.log && ./test2.sh || ./test1.sh 用以上命令可以實現在abc.log中查找字元串mysqlmp1,如果查到的話就執行./test2.sh 否則執行./test1.sh (grep "Hello Would" temp && echo "Hello Would" || echo "Hello China")
通過以上方式可以到日誌文件中查找是否有error,有的話就說明備份失敗。
㈣ 如何清除sql日誌_資料庫技巧
1.打開查詢分析器,輸入命令 DUMP TRANSACTION 資料庫名 WITH NO_LOG 2.再打開企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。 清除Log有兩種方法: 1.自動清除法 開放資料庫選項 Trunc Log on Chkpt,使資料庫系統每隔一段時間自動清除Log。此方法的優點是無須人工干預,由SQL Server自動執行,並且一般不會出現Log溢滿的情況;缺點是只清除Log而不做備份。 2.手動清除法 執行命令「mp transaction」來清除Log。以下兩條命令都可以清除日誌: mp transaction with truncate_only mp transaction with no_log 通常刪除事務日誌中不活躍的部分可使用「mp transaction with trancate_only」命令,這條命令寫進事務日誌時,還要做必要的並發性檢查。SYBASE提供「mp transaction with no_log」來處理某些非常緊迫的情況,使用這條命令有很大的危險性,SQL Server會彈出一條警告信息。為了盡量確保資料庫的一致性,你應將它作為「最後一招」。 以上兩種方法只?清除日誌,而不做日誌備份,若想備份日誌,應執行「mp transaction database_name to mpdevice」命令。 PS:附一個更好的方法 先分離資料庫後,直接刪除日誌以後,再在查詢分析器里用 exec sp_attach_single_file_db 資料庫名, .mdf文件路徑 命令附加資料庫。
㈤ postgresql常見命令及操作
服務啟動
安裝完成後的命令自動安裝了如 pg_ctl , postgres, psql 等 Postgres 常用工具。
啟動服務時需指定目錄,通常默認在 /usr/local/var/postgres,使用 pg_ctl start 也可啟動服務,但需設置環境變數 PGDATA=/usr/local/var/postgres,否則會報錯。
設置開機自動啟動。
常用命令如下:
查看版本 - 查看 Postgres 版本信息。
查看資料庫狀態、操作 - 了解資料庫運行情況。
創建資料庫用戶 - 新建資料庫賬戶。
創建資料庫/密碼 - 創建資料庫及其訪問密碼。
遠程進入psql命令行 - 遠程連接資料庫。
命令總結:
用戶實用程序:
系統實用程序:
在資料庫中的一些命令:
基本資料庫操作:
表內基本操作:
PostgreSQL用戶認證:通過 pg_hba.conf 文件進行,可在/usr/local/pgsql/data 中找到。
完整創建資料庫用戶示例:
設定用戶許可權:創建用戶組,添加用戶,授予特定許可權,刪除用戶。
備份資料庫:使用 pg_mp 和 pg_mpall 命令。
數據目錄介紹:包含 base、global、表空間目錄等,其中 base 是最重要的目錄,存放每個資料庫的數據。
pg數據目錄:在 Linux 中可能是 /usr/local/var/postgres。
全局目錄:包含 pg_database、pg_tablespace 等全局系統表。
表空間目錄:每個 Oid 對應一個名為 Oid 的軟鏈接文件。
配置文件:如 postgresql.conf 和 pg_hba.conf,配置連接、資源使用、優化等。
備份與恢復:備份資料庫和表,使用 pg_mp 命令,恢復庫/表。
常見資料庫操作:基本操作類似 MySQL,如創建表、插入數據等。