1. 数据库移植到sql Server 2008R2出现“3145错误”怎么办
SQL
Server
2000数据库移植到SQL
Server
2008R2数据库服务器中碰到的”3145错误”及解决办法
辛苦忙碌了一个星期终于安装配置好了TFS服务器,给每个团队成员分配了账户和邮箱。不过,老机器中的部分数据需要备份到新机器中,其中在移植一个使用DVBBS架设的论坛的时候,出了点问题,记录如下,以备查找,也希望能帮助到其他人。
由于论坛已经运行了一段时间,包括公司注册用户、相关讨论共享等重要资料,需要将其移植到新安装TFS服务器的机器上,并对外公开访问权限。旧的机器上安装的是SQL
Server
2000,在将论坛数据库备份之后,在SQL
Server
2008R2的数据库上还原的过程中,出现了如下的3145错误:
备份集中的数据库备份与现有的
'xxx'
数据库不同。
一直以为SQL
Server数据库是向前后兼容的,怎么可能存在这样的问题呢?不过检查一番之后,确定两台数据库服务器都没有问题,且论坛的备份在原数据库服务器上可以正常还原。没办法,改之,把在SQL
Server
2008R2上新建的数据库更改为
SQL
Server
2000格式的,再尝试还原,仍然是同样的错误。在网上找了下,说到的办法,尝试了不少,其中有一篇是“备份集中的数据库备份与现有的数据库不同
SQL
2005
ERROR:3145
解决办法
”,提供了如下命令方法:
1.新建一个与现有数据库重名的数据库
2.在查询窗口运行如下语句:
use
master
restore
database
AdventureWorks
from
disk
=
'E:databasebackupAdventureWorks.bak'
with
replace,
MOVE
N'AdventureWorks_Data'
TO
N'C:Program
FilesMicrosoft
SQL
ServerMSSQL.5MSSQLDataAdventureWorks.mdf',
MOVE
N'AdventureWorks_Log'
TO
N'C:Program
FilesMicrosoft
SQL
ServerMSSQL.5MSSQLDataAdventureWorks_log.ldf'
从语句上来看,和在图形界面的操作是一样的,但是结果却是语句运行成功,图形界面怎么过不去。
在其他网页上也看到了类似的方法,也有不少成功解决这个错误的,不过,在SQL
Server
2008R2服务器上,还是无法正确备份,也没有找到有其它人在SQL
Server
2008R2上,用其它方法解决还原备份的问题。
不过,将论坛数据库从旧的SQL
Server
2000上分离出来,再附加上SQL
Server
2008R2上,成功,数据完整的恢复了!
不清楚为什么在SQL
Server
2005上可以,在SQL
Server
2008R2却不能恢复备份。不过,好在使用分离和附加的方法,成功将论坛迁移。在此记下,做为参考吧。
2. MySql 读写分离怎么配置啊
MySql 读写分离配置 MySQL是开源的关系型数据库系统。MySql 读写分离配置,主从同步复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程。 MySql 读写分离配置 配置主服务器 (master) 1、编辑数据库配置文件my.cnf 或 my.ini (windows),一般在/etc/目录下。 #vi /etc/my.cnf 在[mysqld]的下面加入下面代码: log-bin=mysql-bin server-id=1 innodb_flush_log_at_trx_commit=1 sync_binlog=1 binlog-do-db=wordpress binlog_ignore_db=mysql server-id=1中的1可以任定义,只要是唯一的就行。 binlog-do-db=wordpress是表示只备份wordpress。 binlog_ignore_db=mysql表示忽略备份mysql。 不加binlog-do-db和binlog_ignore_db,那就表示备份全部数据库。 2、然后重启MySQL: #service mysqld restart 3、登录MySQL服务器。 #mysql -uroot -p MySql 读写分离其余配置 在主服务器新建一个用户赋予“REPLICATION SLAVE”的权限。你不需要再赋予其它的权限。在下面的命令,把X.X.X.X替换为从服务器的IP。 http://www.qi788.com/sitemap mysql>CREATE USER 'user'@ 'X.X.X.X' IDENTIFIED BY 'password'; mysql>GRANT REPLICATION SLAVE ON *.* TO 'user'@'X.X.X.X' IDENTIFIED BY 'password'; 4、执行以下命令锁定数据库以防止写入数据。 mysql>FLUSH TABLES WITH READ LOCK; 5、退出mysql命令行,导出数据库 #mysqlmp -u root -p123456 --all-databases > /root/all.sql 6、使用scp命令传输数据库文件all.sql到从服务器。 #scp /root/all.sql root@ www.example.com :/root 7、再次连接数据库进入mysql命令行查看master状态。 mysql>SHOW MASTER STATUS; 请记下显示的信息,配置从服务器会用到。 +——————+———-+————–+——————+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +——————+———-+————–+——————+ | mysql-bin.000001| 253| dbispconfig | mysql | +——————+———-+————–+——————+ 1 row in set (0.00 sec) 8、解锁数据表。 mysql>UNLOCK TABLES; 配置从服务器 (slave) 登录从服务器。 1、导入主服务器的数据库。 #mysql -u root -p123456 < /root/all.sql 2、编辑配置文件my.cnf,在[mysqld]下面加入: server-id=2 注:2可以自己定义,只要保证唯一的就行。 3、保存文件并重启mysqld。 #service mysqld restart 4、登录mysql服务器,执行以下命令。 mysql>CHANGE MASTER TO MASTER_HOST='X.X.X.X', MASTER_USER='user', MASTER_PASSWORD='password', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001, MASTER_LOG_POS=253, MASTER_CONNECT_RETRY=10; 注: MASTER_HOST:主服务器的IP。 MASTER_USER:配置主服务器时建立的用户名 MASTER_PASSWORD:用户密码 MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。 这里master_log_file和master_log_pos就是前面show master status的结果。 5、启动slave进程。 mysql>START SLAVE; mysql>SHOW SLAVE STATUS; 如果能查出一条记录 那么,配置成功 6、查看mysql的日志,一般在/var/log/目录下,如果启动成功,你应该会看到类似下面的日志。 091104 8:42:02 [Note] Slave I/O thread: connected to master ‘[email protected]:3306?, replication started in log ‘mysql-bin.000001? at position 98 现在主服务器和从服务器已经配置好了。另外你可能需要设置主服务器的数据库二进制日志的过期时间,可以在配置文件中使用参数expire_logs_days来设定。 java spring事务设置,方法头部设置 @Transactional(readOnly=true) java 连接 驱动 设置 jdbc.connection.driver=com.mysql.jdbc.ReplicationDriver jdbc.connection.url=jdbc:mysql:replication://192.168.202.190,192.168.202.190/job?useUnicode=true&characterEncoding=utf-8 MySql 读写分离配置到此结束 资料来源: http://www.qi788.com/info/12.html
3. sqlserver2008 插入3000条/秒,分析IO,发现日志读写远大于正常的数据库读写!我不需要任何日志,如何关闭
建议用select into ,用insert into 是会产生日志的!select into就不会产生日志。
4. MSSQL SERVER 怎么实现读写分离
sqlserver2008 怎样进行数据库分离??在数据库上点右键,就有数据库分离的菜单项,直接点击就好了
你在哪里抄来抄了错误的东西吗?或者你尝试刷新数据。
显然是数据库连接字符串,不,啊,你要连接本地(local)数据库实例名称不会是localhost
5. net 怎么使用sqlserver读写分离
在任务栏上,单击“开始”,然后单击“运行”。
在“运行”对话框中,复制并粘贴以下命令,或自己键入以下命令:
C:\WINNT\IsUninst.exe -f"C:\Program Files\Microsoft SQL Server\MSSQL$Server1\Uninst.is" -c"C:\Program Files\Microsoft SQL Server\MSSQL$Server1\sqlsun.dll" -Mssql.miff i=I1
6. alwayson 读写分离配置怎么去除
SQLServer2012推出的最重要的功能之一Alwayson,是一个集之前Cluster和Mirror于一体的新功能,即解决了Cluster依赖共享存储的问题,又解决了镜像不能实时读以及转移后连接串需要添加转移IP的问题,看起来的确很实用。而且Alwayson多副本的功能为实现读写分离提供了可能,试想一下,当主副本压力比较大的时候,是否可以将读操作引向辅助副本呢?答案一般来讲是肯定的,请注意,是一般!Alwayson有两个同步模式,同步和异步,即然是同步,理所当然的我认为他是实时的,所以我配置了只读路由,来使用这个功能。
7. sql server 2008数据库的分离是什么意思
数据库分离是指将数据库文件从数据库服务器实例中分离出来,相当于关闭了数据库。数据库分离后,应用程序不能连接到该数据库,数据库文件可以被其它进程访问。通常分离数据库用于快速地将数据库迁移到另一个sqlserver实例。
数据库分离后,还可以附加到sqlserver实例。
8. SQL SERVER 能不能实现读写分离解决方法
至于对数据库的读写操作分离,还是前台代码来确定。
对于只负责读的数据库可以对该访问用户设置为datareader角色即可,也可以防止数据写了,不过这是数据库方面权限的问题
9. 请问,利用SQL Server2008复制技术,实现数据库读写分离,订阅服务器只负责读操作,还会出现复制冲突么
不会的出现复制冲突。
10. asp.net+sqlserver+server 2008可以做高并发的网站吗
可以的。
1、凡是大型的系统,必然要分库,也就是根据逻辑进行数据拆分。比如用户的数据,可以根据用户所在的省份划分,一个省份一个数据库,只有这样才能真正的保证大数量的并发。
2、要有效的利用读写分离,读写分离用sql server 2012的话可以直接用always on,一个用来写,若干用来读。数据库自身会保证数据的一致性的,这样就不会出现查备份库数据还没同步过来的问题了。
技术要点:
分库要看具体的应用场景,水平分或者竖直分。不过通常而言,水平分可能更多一些,因为当某些表的记录数达到一个很大值(比如上亿),那么水平分更有效一点。基本原则是保证在一个事务场景中,能用一个库完成,不出现两个库之间的关联查询。分库还要根据实际的应用场景,比如按照用户来划分,还是按照地域来划分等等,在一个应用的初始设计中是无法预估的,这个需要边上线,边分析用户数据,边改进结构。在没有大量用户使用的前提下(也就是缺少必要的数据使用分析),光凭脑袋空想分库场景基本是不现实的。