mssql 查询 fn_dblog

在 SQL Server 中,可以使用系统函数fn_dblog来查看事务日志的记录。该函数返回一个结果集,其中包含了事务日志中的详细信息,例如操作类型、事务 ID、LSN 等。

以下是一个示例查询,用于获取特定时间段内某张数据表的更新时间:

sql

DECLARE @start_time DATETIME = '2024-07-01 00:00:00';
DECLARE @end_time   DATETIME = '2024-07-05 23:59:59';

SELECT [begin_time]
FROM sys.fn_dblog(NULL, NULL)
WHERE [operation] IN ('LOP_MODIFY_ROW', 'LOP_INSERT_ROWS', 'LOP_DELETE_ROWS')
  AND [alloc_unit_name] = 'dbo.YourTableName'
  AND [begin_time] >= @start_time
  AND [begin_time] <= @end_time;

在上述查询中,使用了DECLARE语句定义了两个变量@start_time@end_time,分别表示起始时间和结束时间。然后,在查询中使用这些变量来筛选出指定时间段内的记录。

请注意,将示例中的'dbo.YourTableName'替换为你要查询的实际表名。

此外,还可以根据需要添加其他条件来进一步筛选结果集,例如根据事务 ID、操作类型等。

[root@lsycompute ~]# nova-manage api_db sync An error has occurred: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 2708, in main ret = fn(*fn_args, **fn_kwargs) File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 968, in sync return migration.db_sync(version, database='api') File "/usr/lib/python2.7/site-packages/nova/db/migration.py", line 26, in db_sync return IMPL.db_sync(version=version, database=database, context=context) File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 53, in db_sync current_version = db_version(database, context=context) File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 66, in db_version return versioning_api.db_version(get_engine(database, context=context), File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 43, in get_engine return db_session.get_api_engine() File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/api.py", line 152, in get_api_engine return api_context_manager.writer.get_engine() File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 833, in get_engine return self._factory.get_writer_engine() File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 372, in get_writer_engine self._start() File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 510, in _start engine_args, maker_args) File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 532, in _setup_for_connection "No sql_connection parameter is established") CantStartEngineError: No sql_connection parameter is established
最新发布
06-10
### 解决方案 当运行 `nova-manage api_db sync` 时出现 `CantStartEngineError` 错误,通常是因为缺少或错误配置了 `sql_connection` 参数。以下是详细的排查和解决方法: #### 配置文件检查 `sql_connection` 参数通常位于 `/etc/nova/nova.conf` 文件中。打开此文件并确保 `[database]` 部分正确配置了数据库连接字符串[^1]。 ```ini [database] connection = mysql+pymysql://nova:password@controller/nova ``` - `mysql+pymysql`: 数据库驱动类型。 - `nova`: 数据库用户名。 - `password`: 数据库用户的密码。 - `controller`: 数据库服务器的主机名或 IP 地址。 - `nova`: 数据库名称。 确保上述参数与实际数据库配置匹配。如果未设置 `connection` 参数,则会导致 `CantStartEngineError` 错误。 #### 验证数据库服务 确保 MySQL 或 MariaDB 服务正在运行,并且 Nova 用户具有正确的权限。可以通过以下命令验证: ```bash systemctl status mariadb ``` 使用数据库客户端连接到数据库以验证连接性: ```bash mysql -u nova -p -h controller ``` 在数据库中确保 Nova 数据库已创建并且用户权限已正确分配[^2]。 #### 同步数据库 完成配置后,重新运行以下命令以同步数据库结构: ```bash nova-manage api_db sync ``` 如果配置正确,此命令将成功执行而不会报错。 #### 检查日志文件 如果问题仍然存在,可以查看 Nova 的日志文件以获取更多信息。日志文件通常位于 `/var/log/nova/` 目录下。重点检查 `nova-api.log` 和 `nova-manage.log` 文件中的错误信息[^3]。 ```bash tail -f /var/log/nova/nova-api.log tail -f /var/log/nova/nova-manage.log ``` #### 验证服务状态 确保 Nova 服务已启动并正常运行: ```bash systemctl status openstack-nova-api.service ``` 如果服务未启动,可以尝试重启服务: ```bash systemctl restart openstack-nova-api.service ``` --- ### 总结 通过检查 `/etc/nova/nova.conf` 文件中的 `sql_connection` 参数、验证数据库服务状态、同步数据库以及查看日志文件,可以有效解决 `nova-manage api_db sync` 命令中的 `CantStartEngineError` 错误[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三希

如果这篇文章帮您解决了技术难题

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值