Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用命令行进行升级发现辅助表最多能升级500行,再多就不见了 #694

Open
qianmengnet opened this issue May 28, 2018 · 9 comments
Labels

Comments

@qianmengnet
Copy link

qianmengnet commented May 28, 2018

好几个站点,有一些站点内容比较多,单独用的辅助表,最多的一个4008行,但是使用命令行升级之后,恢复到数据库中,最多也才500行,丢失了不少东西。

到底是命令行的限制还是运行时间的问题,或者是其他问题,建议官方检查一下

@starlying
Copy link
Contributor

导入的数据库类型和版本是什么?

@qianmengnet
Copy link
Author

sqlserver 2008 r2

@qianmengnet
Copy link
Author

刚看到了errerlog,以前没注意。
errorlog里面出现的错误主要有这么几个

{"dateTime":"2018-05-29 08:33:23","detail":"tableName siteserver_AdministratorsInRoles, fileName 1.json","message":"违反了 PRIMARY KEY 约束 'PK_siteserver_AdministratorsInRoles_Id'。不能在对象 'dbo.siteserver_AdministratorsInRoles' 中插入重复键。\r\n语句已终止。","stackTrace":" 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)\r\n 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)\r\n 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)\r\n 在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)\r\n 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)\r\n 在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest)\r\n 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite)\r\n 在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)\r\n 在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(IDbCommand command) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 738\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(IDbConnection connection, String commandText, IDataParameter[] commandParameters) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 954\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(String connectionString, String commandText, IDataParameter[] commandParameters) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 795\r\n 在 SiteServer.CMS.Provider.DatabaseDao.InsertRows(String tableName, String columnNames, List1 valuesList, List1 parameterList) 位置 C:\\projects\\cms\\SiteServer.CMS\\Provider\\DatabaseDao.cs:行号 1746\r\n 在 SiteServer.CMS.Provider.DatabaseDao.InsertMultiple(String tableName, IEnumerable1 items, List1 tableColumns) 位置 C:\\projects\\cms\\SiteServer.CMS\\Provider\\DatabaseDao.cs:行号 1728\r\n 在 SiteServer.Cli.Commands.RestoreManager.Execute(String[] args)"}

{"dateTime":"2018-05-29 08:33:25","detail":"tableName siteserver_ContentCheck, fileName 2.json","message":"违反了 PRIMARY KEY 约束 'PK_siteserver_ContentCheck_Id'。不能在对象 'dbo.siteserver_ContentCheck' 中插入重复键。\r\n语句已终止。","stackTrace":" 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)\r\n 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)\r\n 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)\r\n 在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)\r\n 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)\r\n 在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest)\r\n 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite)\r\n 在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)\r\n 在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(IDbCommand command) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 738\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(IDbConnection connection, String commandText, IDataParameter[] commandParameters) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 954\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(String connectionString, String commandText, IDataParameter[] commandParameters) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 795\r\n 在 SiteServer.CMS.Provider.DatabaseDao.InsertRows(String tableName, String columnNames, List1 valuesList, List1 parameterList) 位置 C:\\projects\\cms\\SiteServer.CMS\\Provider\\DatabaseDao.cs:行号 1746\r\n 在 SiteServer.CMS.Provider.DatabaseDao.InsertMultiple(String tableName, IEnumerable1 items, List1 tableColumns) 位置 C:\\projects\\cms\\SiteServer.CMS\\Provider\\DatabaseDao.cs:行号 1720\r\n 在 SiteServer.Cli.Commands.RestoreManager.Execute(String[] args)"}

{"dateTime":"2018-05-29 08:38:03","detail":"tableName siteserver_Tracking, fileName 591.json","message":"违反了 PRIMARY KEY 约束 'PK_siteserver_Tracking_trackingid'。不能在对象 'dbo.siteserver_Tracking' 中插入重复键。\r\n语句已终止。","stackTrace":" 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)\r\n 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)\r\n 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)\r\n 在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)\r\n 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)\r\n 在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest)\r\n 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite)\r\n 在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)\r\n 在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(IDbCommand command) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 738\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(IDbConnection connection, String commandText, IDataParameter[] commandParameters) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 954\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(String connectionString, String commandText, IDataParameter[] commandParameters) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 795\r\n 在 SiteServer.CMS.Provider.DatabaseDao.InsertRows(String tableName, String columnNames, List1 valuesList, List1 parameterList) 位置 C:\\projects\\cms\\SiteServer.CMS\\Provider\\DatabaseDao.cs:行号 1746\r\n 在 SiteServer.CMS.Provider.DatabaseDao.InsertMultiple(String tableName, IEnumerable1 items, List1 tableColumns) 位置 C:\\projects\\cms\\SiteServer.CMS\\Provider\\DatabaseDao.cs:行号 1720\r\n 在 SiteServer.Cli.Commands.RestoreManager.Execute(String[] args)"}

{"dateTime":"2018-05-29 08:35:16","detail":"tableName model_news, fileName 2.json","message":"违反了 PRIMARY KEY 约束 'PK_modelnews_id'。不能在对象 'dbo.model_news' 中插入重复键。\r\n语句已终止。","stackTrace":" 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)\r\n 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)\r\n 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)\r\n 在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)\r\n 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)\r\n 在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest)\r\n 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite)\r\n 在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)\r\n 在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(IDbCommand command) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 738\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(IDbConnection connection, String commandText, IDataParameter[] commandParameters) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 954\r\n 在 SiteServer.CMS.Data.DbHelper.ExecuteNonQuery(String connectionString, String commandText, IDataParameter[] commandParameters) 位置 C:\\projects\\cms\\SiteServer.CMS\\Data\\DbHelper.cs:行号 795\r\n 在 SiteServer.CMS.Provider.DatabaseDao.InsertRows(String tableName, String columnNames, List1 valuesList, List1 parameterList) 位置 C:\\projects\\cms\\SiteServer.CMS\\Provider\\DatabaseDao.cs:行号 1746\r\n 在 SiteServer.CMS.Provider.DatabaseDao.InsertMultiple(String tableName, IEnumerable1 items, List1 tableColumns) 位置 C:\\projects\\cms\\SiteServer.CMS\\Provider\\DatabaseDao.cs:行号 1720\r\n 在 SiteServer.Cli.Commands.RestoreManager.Execute(String[] args)"}

@qianmengnet
Copy link
Author

因为数据量比较大,而且部分内容的id可能有重复,特别是siteserver_AdministratorsInRoles这个,以前的id都是null,所以里面有重复。

另外无论出了什么错误,无论什么提示,最终 siteserver_ContentCheck 和其他超出500条的都只保留了500条

@starlying
Copy link
Contributor

sqlserver 2008是有问题,我们正在修复,建议用sqlserver 2012版本,这个我们测试没有问题

@qianmengnet
Copy link
Author

安装了sqlserver2012 升级仍然出现这个问题,只能恢复500条数据

@starlying
Copy link
Contributor

可以把备份文件压缩一下发给我们,我们测试看看什么问题导致的,support@siteserver.cn

@qianmengnet
Copy link
Author

已经发送

@starlying
Copy link
Contributor

好的,我们查一下

@starlying starlying mentioned this issue Jul 1, 2018
43 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants