
5把数据库设成紧急状态:
在SQL查询分析器中逐条执行以下语句
sp_configure 'allow',1
reconfigure with override
update sysdatabases set status=32768 where name='kmjxc'
6重建日志文件(请将路径换成你的数据文件路径)
其中“D:\MSSQL$PROD\Data\”为存放数据库文件的路径
“KMJXC_logldf”为一个新的不存在的文件,在执行以下语句时将自动建立
dbcc rebuild_log('kmjxc','D:\MSSQL$PROD\Data\KMJXC_logldf')
7逐条执行以下语句,取消紧急模式
update sysdatabases set status=0 where name='kmjxc'
restore database kmjxc with recovery
sp_configure 'allow',0
reconfigure with override
8重起sql server
v$sql 是一个SYS级的视图。有ORACLE安装后自动从一个系统表上生成的视图。
create or replace view sysv_$sql as
select "SQL_TEXT","SQL_FULLTEXT","SQL_ID","SHARABLE_MEM","PERSISTENT_MEM","RUNTIME_MEM","SORTS","LOADED_VERSIONS","OPEN_VERSIONS","USERS_OPENING","FETCHES","EXECUTIONS","PX_SERVERS_EXECUTIONS","END_OF_FETCH_COUNT","USERS_EXECUTING","LOADS","FIRST_LOAD_TIME","INVALIDATIONS","PARSE_CALLS","DISK_READS","DIRECT_WRITES","BUFFER_GETS","APPLICATION_WAIT_TIME","CONCURRENCY_WAIT_TIME","CLUSTER_WAIT_TIME","USER_IO_WAIT_TIME","PLSQL_EXEC_TIME","JAVA_EXEC_TIME","ROWS_PROCESSED","COMMAND_TYPE","OPTIMIZER_MODE","OPTIMIZER_COST","OPTIMIZER_ENV","OPTIMIZER_ENV_HASH_VALUE","PARSING_USER_ID","PARSING_SCHEMA_ID","PARSING_SCHEMA_NAME","KEPT_VERSIONS","ADDRESS","TYPE_CHK_HEAP","HASH_VALUE","OLD_HASH_VALUE","PLAN_HASH_VALUE","CHILD_NUMBER","SERVICE","SERVICE_HASH","MODULE","MODULE_HASH","ACTION","ACTION_HASH","SERIALIZABLE_ABORTS","OUTLINE_CATEGORY","CPU_TIME","ELAPSED_TIME","OUTLINE_SID","CHILD_ADDRESS","SQLTYPE","REMOTE","OBJECT_STATUS","LITERAL_HASH_VALUE","LAST_LOAD_TIME","IS_OBSOLETE","CHILD_LATCH","SQL_PROFILE","PROGRAM_ID","PROGRAM_LINE#","EXACT_MATCHING_SIGNATURE","FORCE_MATCHING_SIGNATURE","LAST_ACTIVE_TIME","BIND_DATA" from v$sql;
从All_Objects t表中获取不到任何关于'%v$sql属组的信息,可见你无法对其进行删除 *** 作。
SELECT FROM All_Objects t WHERE tobject_name LIKE '%v$sql%';
更快速的配置对比 pt-config-diff在我们日常工作中,大家一定遇到过以下场景:
若干套 MySQL 环境,只有一套:
∘ 行为异常,怀疑触发 bug
∘ 性能异常,比其他环境都要低
在这种场景下,我们一般的做法是首先控制变量,查看软硬件配置,以及 MySQL 的参数配置。关于 MySQL 的参数配置对比,如果我们人工对比的话只会关注某些重点参数,而缺少了整体细节上的的对比。在这里我们推荐给大家 Percona Toolkit 中的一个工具 pt-config-diff。更准确的复制延时 pt-heartbeat在 MySQL 中,复制延迟可以理解为由两部分组成:1 主库已经生成了 BINLOG,但是还没有发送给从库 -- 我们在这里称之为:日志延迟2 从库已经接收到了 BINLOG,但是还没有应用完成 -- 我们在这里称之为:应用延迟MySQL 原生的查看复制延迟的手段为:show slave status\G中的Seconds_Behind_Master。这种观测手法只能观测出应用延迟。在异步复制或降级的半同步复制下,误差较大,无法准确的反映出整体复制延时。
1 在 Master 上循环插入:insert into databaseheartbeat (master_now) values(NOW())
2 databaseheartbeat 的变更会跟随主从复制流向从库
3 系统当前时间 - 从库表中的时间 = 从库实际的复制延时
更简单的参数配置建议 pt-variable-advisortoolkit 中包含了一个简单的 MySQL 参数优化器,可以对参数配置做简单的优化建议。
更准确的复制延时 pt-heartbeat在 MySQL 中,复制延迟可以理解为由两部分组成:1 主库已经生成了 BINLOG,但是还没有发送给从库 -- 我们在这里称之为:日志延迟2 从库已经接收到了 BINLOG,但是还没有应用完成 -- 我们在这里称之为:应用延迟MySQL 原生的查看复制延迟的手段为:show slave status\G中的Seconds_Behind_Master。这种观测手法只能观测出应用延迟。在异步复制或降级的半同步复制下,误差较大,无法准确的反映出整体复制延时。
更易用的调试工具 pt-pmp在某些情况下,我们肯定会遇到某些故障无法从日志,以及状态命令中找到原因,需要深入到程序逻辑级别。又或者我们需要立即通过非常规手段恢复故障数据库,但是又想保留足够多的故障信息。来避免我们事后复现问题的头疼。pt-pmp 便是在这种场景下帮助我们的工具。它会使用 gdb 来打印 mysqld 的堆栈信息,并把调用链相同的线程堆栈合并。堆栈合并的功能对于 MySQL 这种多线程的应用非常有帮助,会节省我们大量的时间。
1 Microsoft SQL Server->企业管理器->控制台根目录->SQL Server组->新建SQL Server 注册->可用的服务器添加->windows身份验证->在现有SQL Server组里添加SQL Server->完成
2 找到图标下的“数据库”选项->右键,有任务->附加数据库->选择要附加数据库的MDF文件路径->确定完成
--右键"数据库"
--所有任务
--附加数据库
--选择你的mdf文件名
--确定
--如果提示没有ldf文件,是否创建,选择"是"
以上就是关于我把SQL数据库日志删除了,现在恢复不了了,,怎么办啊~~急呀!!全部的内容,包括:我把SQL数据库日志删除了,现在恢复不了了,,怎么办啊~~急呀!!、数据库中,修改数据,日志记录、如何利用归档日志恢复数据库到另一个库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)