我把SQL数据库日志删除了,现在恢复不了了,,怎么办啊~~急呀!!

我把SQL数据库日志删除了,现在恢复不了了,,怎么办啊~~急呀!!,第1张

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数据库日志删除了,现在恢复不了了,,怎么办啊~~急呀!!、数据库中,修改数据,日志记录、如何利用归档日志恢复数据库到另一个库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9765665.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存