Командная строка SQL Server копирует оператор

Вы также получаете сообщение «Срок действия вашего токена авторизации истек», если у вас есть несколько учетных данных в ~ / .aws / credentials (путь зависит от вашей ОС), и вы забыли добавить флаг --p.

Используйте эту команду для получения логина:

aws ecr get-login --region eu-west-1 --p <yourprofilename>
35
задан bzlm 16 September 2009 в 15:08
поделиться

3 ответа

Вот пример, который вы можете запустить как пакетный сценарий (копировать и вставить в файл .bat), используя утилиту SQLCMD в клиентских инструментах Sql Server:

РЕЗЕРВНОЕ КОПИРОВАНИЕ:

echo off
cls
echo -- BACKUP DATABASE --
set /p DATABASENAME=Enter database name:

:: filename format Name-Date (eg MyDatabase-2009.5.19.bak)
set DATESTAMP=%DATE:~-4%.%DATE:~7,2%.%DATE:~4,2%
set BACKUPFILENAME=%CD%\%DATABASENAME%-%DATESTAMP%.bak
set SERVERNAME=your server name here
echo.

sqlcmd -E -S %SERVERNAME% -d master -Q "BACKUP DATABASE [%DATABASENAME%] TO DISK = N'%BACKUPFILENAME%' WITH INIT , NOUNLOAD , NAME = N'%DATABASENAME% backup', NOSKIP , STATS = 10, NOFORMAT"
echo.
pause

ВОССТАНОВЛЕНИЕ:

echo off
cls
echo -- RESTORE DATABASE --
set /p BACKUPFILENAME=Enter backup file name:%CD%\
set /p DATABASENAME=Enter database name:
set SERVERNAME=your server name here
sqlcmd -E -S %SERVERNAME% -d master -Q "ALTER DATABASE [%DATABASENAME%] SET SINGLE_USER WITH ROLLBACK IMMEDIATE"

:: WARNING - delete the database, suits me
:: sqlcmd -E -S %SERVERNAME% -d master -Q "IF EXISTS (SELECT * FROM sysdatabases WHERE name=N'%DATABASENAME%' ) DROP DATABASE [%DATABASENAME%]"
:: sqlcmd -E -S %SERVERNAME% -d master -Q "CREATE DATABASE [%DATABASENAME%]"

:: restore
sqlcmd -E -S %SERVERNAME% -d master -Q "RESTORE DATABASE [%DATABASENAME%] FROM DISK = N'%CD%\%BACKUPFILENAME%' WITH REPLACE"

:: remap user/login (http://msdn.microsoft.com/en-us/library/ms174378.aspx)
sqlcmd -E -S %SERVERNAME% -d %DATABASENAME% -Q "sp_change_users_login 'Update_One', 'login-name', 'user-name'"
sqlcmd -E -S %SERVERNAME% -d master -Q "ALTER DATABASE [%DATABASENAME%] SET MULTI_USER"
echo.
pause
55
ответ дан 27 November 2019 в 07:04
поделиться

Если вам нужен командный файл для планирования резервного копирования, инструменты управления SQL имеют встроенные запланированные задачи ...

2
ответ дан 27 November 2019 в 07:04
поделиться

Я использую SQL Server 2005 Express, и мне пришлось включить соединение по именованным каналам, чтобы иметь возможность выполнять резервное копирование с помощью команды Windows. Мой последний сценарий таков:

@echo off
set DB_NAME=Your_DB_Name
set BK_FILE=D:\DB_Backups\%DB_NAME%.bak
set DB_HOSTNAME=Your_DB_Hostname
echo.
echo.
echo Backing up %DB_NAME% to %BK_FILE%...
echo.
echo.
sqlcmd -E -S np:\\%DB_HOSTNAME%\pipe\MSSQL$SQLEXPRESS\sql\query -d master -Q "BACKUP DATABASE [%DB_NAME%] TO DISK = N'%BK_FILE%' WITH INIT , NOUNLOAD , NAME = N'%DB_NAME% backup', NOSKIP , STATS = 10, NOFORMAT"
echo.
echo Done!
echo.

Здесь все отлично работает !!

1
ответ дан 27 November 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: