😊
SQL Server を最低限覚えたい
SQL Server コマンド覚書
sqlcmd例
- バージョン確認
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
select @@version
"
- データベース作成
sqlcmd -S mssql1 -U admin -PP#ssw0rd -Q 'create database sample'
- データベース一覧
sqlcmd -S mssql1 -U admin -PP#ssw0rd -Q 'select name,create_date from sys.databases'
- テーブル一覧
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q 'select name from sysobjects where xtype="u"'
- テーブル作成
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
create table dbo.Sample_Table (Number nvarchar(10) not null, First_Name nvarchar(50) not null, Last_Name nvarchar(50) null, Last_Update date not null );
"
- テーブルコピー
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d test1 -Q "
select * into test1.zzz from test1.item1
- データ挿入
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
insert into dbo.Sample_Table values ('100', 'XXX', 'YYY', '2017-10-05' )
"
- テーブル参照
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
select * from dbo.Sample_Table
"
- データ削除
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
delete from dbo.Sample_Table
"
- データ切り捨て
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
truncate table dbo.Sample_Table
"
- 現在時刻
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
select sysdatetime()
"
- 現在のユーザー
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
select current_user
"
- SSL暗号化接続かどうか
sqlcmd -S mssql1 -U admin -PP#ssw0rd -d sample -Q "
select ENCRYPT_OPTION from SYS.DM_EXEC_CONNECTIONS where SESSION_ID = @@SPID
"
BCP (bulk copy program)
- 特定のテーブルをエクスポート
bcp sample.dbo.Sample_Table out test.txt -c -t, -S mssql1 -U admin -PP#ssw0rd
- 特定のテーブルをインポート
bcp sample.dbo.Sample_Table out test.txt -c -t, -S mssql1 -U admin -PP#ssw0rd
- 指定のクエリ結果をエクスポート
bcp "select * from sample.dbo.Sample_Table" queryout test.txt -c -t, -S mssql1 -U admin -PP#ssw0rd
ストアドプロシージャ
- 完全バックアップ to S3
exec msdb.dbo.rds_backup_database
@source_db_name='test1',
@s3_arn_to_backup_to='arn:aws:s3:::xxxxxxxx/backup/sqlserver/sqlserver_test.bak',
@overwrite_S3_backup_file=1;
- 差分バックアップ to S3
exec msdb.dbo.rds_backup_database
@source_db_name='test1',
@s3_arn_to_backup_to='arn:aws:s3:::xxxxxxxx/backup/sqlserver/sqlserver_test1_dif.bak',
@overwrite_s3_backup_file=1,
@type='DIFFERENTIAL';
- バックアップ進捗確認
exec msdb.dbo.rds_task_status
exec msdb.dbo.rds_task_status @db_name='sample'
exec msdb.dbo.rds_task_status @db_name='test1'
- フルリストアでオンライン化
exec msdb.dbo.rds_restore_database
@restore_db_name='test1',
@s3_arn_to_restore_from='arn:aws:s3:::xxxxxxxx/backup/sqlserver/sqlserver_test.bak',
@with_norecovery=0;
- フルリストア+差分リストアでオンライン化
exec msdb.dbo.rds_restore_database
@restore_db_name='test1',
@s3_arn_to_restore_from='arn:aws:s3:::xxxxxxxx/backup/sqlserver/sqlserver_test.bak',
@with_norecovery=1;
exec msdb.dbo.rds_restore_database
@restore_db_name='test1',
@s3_arn_to_restore_from='arn:aws:s3:::xxxxxxxx/backup/sqlserver/sqlserver_test1_dif.bak',
@type='DIFFERENTIAL',
@with_norecovery=0;
参考資料
- DBM
- セッション情報
- AG
- CDC
- 復旧モデル
- トランザクションモデル
- RDS SQLServer の Audit
Discussion