2016-05-18 4 views
1

У меня есть база данных размером около 20 ГБ. Я создал скрипт для БД и контента и теперь пытаюсь импортировать его на другой сервер. Я гугле и нашел такую ​​вещь:Импорт огромного файла SQL в SQL Server 2012

sqlcmd -S localhost -i C:\Users\Administrator\Downloads\SQL_backup.sql 

При выполнении sqlcmd как это, начинается процесс, но через некоторое время я получаю сообщение об ошибке:

Msg 105, Level 15, State 1, сервер WIN- I79PRE6OQTV, линия 793
Unclosed кавычки после строки символов ' 172551665 ......

Так что мой вопрос - если я создал сценарий с использованием Microsoft SQL Server Management Studio - почему я получаю такую ​​ошибку при импорте данных?

Как решить эту проблему?

P.S столбец, в котором эта ошибка жалуется, содержит данные XML, хранящиеся в виде строки и очень длинную строку.

Есть ли другой способ резервного копирования/восстановления?

ОБНОВЛЕНО

Я побежал -> DBCC CHECKDB ('CreditInfoDB', REPAIR_ALLOW_DATA_LOSS)

и это результат

DBCC results for 'CreditInfoDB'. 
Service Broker Msg 9675, State 1: Message Types analyzed: 14. 
Service Broker Msg 9676, State 1: Service Contracts analyzed: 6. 
Service Broker Msg 9667, State 1: Services analyzed: 3. 
Service Broker Msg 9668, State 1: Service Queues analyzed: 3. 
Service Broker Msg 9669, State 1: Conversation Endpoints analyzed: 0. 
Service Broker Msg 9674, State 1: Conversation Groups analyzed: 0. 
Service Broker Msg 9670, State 1: Remote Service Bindings analyzed: 0. 
Service Broker Msg 9605, State 1: Conversation Priorities analyzed: 0. 
DBCC results for 'sys.sysrscols'. 
There are 1092 rows in 14 pages for object "sys.sysrscols". 
DBCC results for 'sys.sysrowsets'. 
There are 147 rows in 3 pages for object "sys.sysrowsets". 
DBCC results for 'sys.sysclones'. 
There are 0 rows in 0 pages for object "sys.sysclones". 
DBCC results for 'sys.sysallocunits'. 
There are 172 rows in 2 pages for object "sys.sysallocunits". 
DBCC results for 'sys.sysfiles1'. 
There are 2 rows in 1 pages for object "sys.sysfiles1". 
DBCC results for 'sys.sysseobjvalues'. 
There are 0 rows in 0 pages for object "sys.sysseobjvalues". 
DBCC results for 'sys.syspriorities'. 
There are 0 rows in 0 pages for object "sys.syspriorities". 
DBCC results for 'sys.sysdbfrag'. 
There are 0 rows in 0 pages for object "sys.sysdbfrag". 
DBCC results for 'sys.sysfgfrag'. 
There are 0 rows in 0 pages for object "sys.sysfgfrag". 
DBCC results for 'sys.sysdbfiles'. 
There are 2 rows in 1 pages for object "sys.sysdbfiles". 
DBCC results for 'sys.syspru'. 
There are 0 rows in 0 pages for object "sys.syspru". 
DBCC results for 'sys.sysbrickfiles'. 
There are 0 rows in 0 pages for object "sys.sysbrickfiles". 
DBCC results for 'sys.sysphfg'. 
There are 1 rows in 1 pages for object "sys.sysphfg". 
DBCC results for 'sys.sysprufiles'. 
There are 2 rows in 1 pages for object "sys.sysprufiles". 
DBCC results for 'sys.sysftinds'. 
There are 0 rows in 0 pages for object "sys.sysftinds". 
DBCC results for 'sys.sysowners'. 
There are 14 rows in 1 pages for object "sys.sysowners". 
DBCC results for 'sys.sysdbreg'. 
There are 0 rows in 0 pages for object "sys.sysdbreg". 
DBCC results for 'sys.sysprivs'. 
There are 141 rows in 1 pages for object "sys.sysprivs". 
DBCC results for 'sys.sysschobjs'. 
There are 2271 rows in 52 pages for object "sys.sysschobjs". 
DBCC results for 'sys.syscsrowgroups'. 
There are 0 rows in 0 pages for object "sys.syscsrowgroups". 
DBCC results for 'sys.sysexttables'. 
There are 0 rows in 0 pages for object "sys.sysexttables". 
DBCC results for 'sys.syscolpars'. 
There are 890 rows in 14 pages for object "sys.syscolpars". 
DBCC results for 'sys.sysxlgns'. 
There are 0 rows in 0 pages for object "sys.sysxlgns". 
DBCC results for 'sys.sysxsrvs'. 
There are 0 rows in 0 pages for object "sys.sysxsrvs". 
DBCC results for 'sys.sysnsobjs'. 
There are 1 rows in 1 pages for object "sys.sysnsobjs". 
DBCC results for 'sys.sysusermsgs'. 
There are 0 rows in 0 pages for object "sys.sysusermsgs". 
DBCC results for 'sys.syscerts'. 
There are 0 rows in 0 pages for object "sys.syscerts". 
DBCC results for 'sys.sysrmtlgns'. 
There are 0 rows in 0 pages for object "sys.sysrmtlgns". 
DBCC results for 'sys.syslnklgns'. 
There are 0 rows in 0 pages for object "sys.syslnklgns". 
DBCC results for 'sys.sysxprops'. 
There are 0 rows in 0 pages for object "sys.sysxprops". 
DBCC results for 'sys.sysscalartypes'. 
There are 34 rows in 1 pages for object "sys.sysscalartypes". 
DBCC results for 'sys.systypedsubobjs'. 
There are 0 rows in 0 pages for object "sys.systypedsubobjs". 
DBCC results for 'sys.sysidxstats'. 
There are 227 rows in 4 pages for object "sys.sysidxstats". 
DBCC results for 'sys.sysiscols'. 
There are 419 rows in 2 pages for object "sys.sysiscols". 
DBCC results for 'sys.sysendpts'. 
There are 0 rows in 0 pages for object "sys.sysendpts". 
DBCC results for 'sys.syswebmethods'. 
There are 0 rows in 0 pages for object "sys.syswebmethods". 
DBCC results for 'sys.sysbinobjs'. 
There are 23 rows in 1 pages for object "sys.sysbinobjs". 
DBCC results for 'sys.sysaudacts'. 
There are 0 rows in 0 pages for object "sys.sysaudacts". 

DBCC results for 'sys.sysobjvalues'. 
There are 234 rows in 22 pages for object "sys.sysobjvalues". 
DBCC results for 'sys.syscscolsegments'. 
There are 0 rows in 0 pages for object "sys.syscscolsegments". 
DBCC results for 'sys.syscsdictionaries'. 
There are 0 rows in 0 pages for object "sys.syscsdictionaries". 
DBCC results for 'sys.sysclsobjs'. 
There are 16 rows in 1 pages for object "sys.sysclsobjs". 
DBCC results for 'sys.sysrowsetrefs'. 
There are 0 rows in 0 pages for object "sys.sysrowsetrefs". 
DBCC results for 'sys.sysremsvcbinds'. 
There are 0 rows in 0 pages for object "sys.sysremsvcbinds". 
DBCC results for 'sys.sysxmitqueue'. 
There are 0 rows in 0 pages for object "sys.sysxmitqueue". 
DBCC results for 'sys.sysrts'. 

There are 0 rows in 0 pages for object "sys.syscommittab". 
DBCC results for 'sys.filetable_updates_2105058535'. 
There are 0 rows in 0 pages for object "sys.filetable_updates_2105058535". 
CHECKDB found 0 allocation errors and 0 consistency errors in database  'CreditInfoDB'. 
DBCC execution completed. If DBCC printed error messages, contact your system administrator. 

ответ

0

Вы можете и должны использовать ETL для резервного копирования в файл и импортировать его на новый сервер. ETL будет более эффективным, чем скрипты для больших наборов данных.

Microsoft предоставляет SSIS для выполнения этой конкретной задачи. Вы можете экспортировать в RAW-файл (не переходить через CSV или XLSX) и импортировать его на другой сервер.

+0

что ELT? это какое-то программное обеспечение? – Purmarili

+0

@Purmarili ETL https://en.wikipedia.org/wiki/Extract,_transform,_load –

+0

Я запускаю: dbcc checkdb ('CreditInfoDB', REPAIR_ALLOW_DATA_LOSS) – Purmarili

0

Скорее всего, ваш файл сценария усекается в какой-то момент процесса. Парсер имеет ограничение на размер файла (вы используете несколько процессов [create, load, execute и т. Д.]).

Лучший способ выполнить такую ​​задачу - это резервное копирование/восстановление базы данных. Create backup in SSMS context menu

Редактировать: основываясь на комментарии от OP, добавлена ​​информация.

Если данные повреждены, то не имеет значения, какой подход вы принимаете. И насколько нужна новая база данных, ну; идея состоит в том, чтобы восстановить как новую базу данных, а не отменять старую.

Перед выполнением резервного копирования проверьте целостность исходной базы данных. После резервного копирования; проверьте свой резервный носитель.

Restore backup in SSMS dialog

+0

У меня была проблема с жестким диском и теперь запросы к базе данных очень медленные или приводят к ошибкам. Вот почему я хотел создать новую базу данных из скрипта. – Purmarili

+0

@Purmarili просмотрите изменения. –

0

Вы пробовали увеличить размер пакета и посмотреть, если исчезает ошибка или другая ошибка появляется?

sqlcmd -S localhost -a 32767 -i C:\Users\Administrator\Downloads\SQL_backup.sql 
0

На вершине запуска резервного копирования/восстановление можно также попробовать просто перемещение базы данных, как это либо отсоединение базы данных, а затем повторно подсоединив в этом новом месте или с помощью базы данных перемещения.

Оба метода покрыты на MSDN Detach MsSQL database 2008 - 2016 и Move MsSQL database 2008 - 2016 (я обычно не размещать ссылки, но это прямо с официального сайта поддержки так должен стоять в течение нескольких лет)