如果您想了解MSSQL附加数据库提示“错误823”数据恢复实操和sql2000附加数据库错误823的知识,那么本篇文章将是您的不二之选。我们将深入剖析MSSQL附加数据库提示“错误823”数据恢复实操
如果您想了解MSSQL 附加数据库提示“错误 823”数据恢复实操和sql2000附加数据库错误823的知识,那么本篇文章将是您的不二之选。我们将深入剖析MSSQL 附加数据库提示“错误 823”数据恢复实操的各个方面,并为您解答sql2000附加数据库错误823的疑在这篇文章中,我们将为您介绍MSSQL 附加数据库提示“错误 823”数据恢复实操的相关知识,同时也会详细的解释sql2000附加数据库错误823的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- MSSQL 附加数据库提示“错误 823”数据恢复实操(sql2000附加数据库错误823)
- ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)
- Java实现 LeetCode 823 带因子的二叉树(DP)
- Linux 系统下 ThinkPHP5 链接 MsSQL
- lnmp 环境里安装 mssql 及 mssql 的 php 扩展
MSSQL 附加数据库提示“错误 823”数据恢复实操(sql2000附加数据库错误823)
故障:
数据库报错:“MSSQL Server 2000
附加数据库错误823”,附加数据库失败。
故障分析:
数据库出现“823”报错信息通常有以下三种原因:
- 1、数据库的物理页面出现了损坏。
- 2、校验值损坏导致数据库页面无法被识别。
- 3、异常断电导致的文件系统损坏,数据库页面丢失。
数据库出现“823”报错信息这种情况下如果有备份,只需还原备份。但是如果没有备份,或者备份间隔时间太久,或者备份数据不可用,那么就需要进行数据恢复。
数据库数据恢复过程:
- 1、北亚数据恢复工程师尝试附加数据库,修复数据库(下图),对数据库进行附加后会提示“823”错误。
- 2、北亚数据恢复工程师使用北亚MSSQL文件检测工具对数据库进行检测。
- 3、北亚数据恢复工程师计算并修改数据库错误数据页的校验值。
- 4、北亚数据恢复工程师重新附加数据库,附加数据库成功。
- 5、北亚数据恢复工程师使用dbcc检测数据库。
- 6、修复上述错误,再一次dbcc检测数据库。
数据恢复结果:
我们再次进行dbcc检测数据库后发现已经没有任何错误提示,重新附加数据库,没有出现任何报错,附加数据库成功。通过正常的数据库环境对数据库进行查询、验证,最终可以确认所有数据被完整恢复。数据库修复成功。
到此这篇关于MSSQL 2000 附加数据库提示“错误 823”数据恢复实操的文章就介绍到这了,更多相关MSSQL 数据恢复内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
- MSSQL 2000 使用帮助(sql server简明教程)
- 简单判断MSSQL数据库版本(2000或者2005)
- MSSQL2000安全设置图文教程
- Tomcat5+Mssql server 2000数据库连接池配置之旅
ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)
我们在数据库插入一条数据的时候,经常是需要返回插入这条数据的主键。但是数据库供应商之间生成主键的方式都不一样。有些是预先生成 (pre-generate) 主键的,如 Oracle 和 PostgreSQL;有些是事后生成 (post-generate) 主键的,如 MySQL 和 SQL Server。但不管是哪种方式,我们都可以用 ibatis 的节点来获取语句所产生的主键。
oracle 例子:
<insert id="insertProduct-ORACLE" parameterClass="product">
<selectKey resultClass="int" type="pre" keyProperty="id" >
SELECT STOCKIDSEQUENCE.NEXTVAL AS VALUE FROM DUAL
</selectKey>
insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values (#id#,#description#)
</insert>
sql-server 例子:
<insert id="insertProduct-MS-SQL" parameterClass="product">
insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
<selectKey resultClass="int" type="post" keyProperty="id" >
select @@IDENTITY as value
</selectKey>
</insert>
mysql 例子:
<insert id="insertProduct-MYSQL" parameterClass="product">
insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
<selectKey resultClass="int" type="post" keyProperty="id" >
select LAST_INSERT_ID() as value
</selectKey>
</insert>
SQLite 例子:
<insert id="Create" parameterClass="Subject">
INSERT INTO SUBJECT
(SubjectName,QuestionCount,IsNowPaper)
VALUES(#SubjectName#,#QuestionCount#,#IsNowPaper#)
<selectKey resultClass="int" type="post" property="SubjectId">
SELECT seq
FROM sqlite_sequence
WHERE (name = ''SUBJECT'')
</selectKey>
</insert>
注意:name = ''SUBJECT''中SUBJECT为表名称
Java实现 LeetCode 823 带因子的二叉树(DP)
823. 带因子的二叉树
给出一个含有不重复整数元素的数组,每个整数均大于 1。
我们用这些整数来构建二叉树,每个整数可以使用任意次数。
其中:每个非叶结点的值应等于它的两个子结点的值的乘积。
满足条件的二叉树一共有多少个?返回的结果应模除 10 ** 9 + 7。
示例 1:
输入: A = [2, 4]
输出: 3
解释: 我们可以得到这些二叉树: [2], [4], [4, 2, 2]
示例 2:
输入: A = [2, 4, 5, 10]
输出: 7
解释: 我们可以得到这些二叉树: [2], [4], [5], [10], [4, 2, 2], [10, 2, 5], [10, 5, 2].
提示:
1 <= A.length <= 1000.
2 <= A[i] <= 10 ^ 9.
PS:
直接找能%的,并且余数为0,
从小到大找,有剪枝操作
class Solution {
public int numFactoredBinaryTrees(int[] A) {
int size = A.length;
Arrays.sort(A);
long[] dp = new long[size];
long ans = 1;
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < size; i++) map.put(A[i], i);
dp[0] = 1;
for (int i = 1; i < size; i++) {
int vi = A[i];
long curres = 1;
for (int j = 0; j < i; j++) {
int vj = A[j];
if (vj * vj > vi) break;
Integer nj;
if (vi % vj == 0 && (nj = map.get(vi/vj)) != null) {
curres += dp[j] * dp[nj] * (nj == j ? 1 : 2);
curres %= 1000000007;
}
}
ans += (dp[i] = curres);
}
return (int)(ans % 1000000007);
}
}
Linux 系统下 ThinkPHP5 链接 MsSQL
案例
CentOS6.8 系统 ThinkPHP5 链接 MsSQL 数据库。
分析
ThinkPHP5 提供了 Mysql、Pgsql、Sqlite 和 Sqlsrv 四种数据库驱动。Window 系统下有现成的 php_sqlsrv.dll 扩展可用,但 Linux 系统中没有 (本人没有找到)。
尝试 1 未成功,写来以备其它用途
安装 freetds
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
tar -zxvf freetds-patched.tar.gz
cd freetds-*
./configure --prefix=/usr/local/freetds --with-tdsver=auto --enable-msdblib --with-gnu-ld --enable-shared --enable-static
make && make install
安装 mssql
wget http://cn2.php.net/distributions/php-5.6.22.tar.gz
tar -zxvf php-5.6.22.tar.gz
cd php-*/ext/mssql
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds
make && make install
修改 php.ini,添加如下配置 (路径请根据环境不同而定)
extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/mssql.so"
修改 ThinkPHP5 配置文件 database.php
// 数据库类型
''type'' => ''sqlsrv'',
// 服务器地址
''hostname'' => ''192.168.1.210'',
// 数据库名
''database'' => ''dbname'',
// 用户名
''username'' => ''sa'',
// 密码
''password'' => ''123456'',
// 端口
''hostport'' => ''1433'',
测试
这种方式在 ThinkPHP 中是行不通的,在其它应用环境可以。
尝试 2 成功
安装 freetds
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
tar -zxvf freetds-patched.tar.gz
cd freetds-*
./configure --prefix=/usr/local/freetds --with-tdsver=auto --enable-msdblib --with-gnu-ld --enable-shared --enable-static
make && make install
安装 pdo_dblib
wget http://cn2.php.net/distributions/php-5.6.22.tar.gz
tar -zxvf php-5.6.22.tar.gz
cd php-*/ext/pdo_dblib
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds
make && make install
修改 php.ini,添加如下配置 (路径请根据环境不同而定)
extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/pdo_dblib.so"
修改 ThinkPHP5 配置文件 database.php
// 数据库类型
''type'' => ''dblib'',
// 服务器地址
''hostname'' => ''192.168.1.210'',
// 数据库名
''database'' => ''dbname'',
// 用户名
''username'' => ''sa'',
// 密码
''password'' => ''123456'',
// 端口
''hostport'' => ''1433'',
下载 ThinkPHP 数据库驱动 Dblib 文件
将文件拷贝到 thinkphp/library/think/db
目录。
测试
成功。
lnmp 环境里安装 mssql 及 mssql 的 php 扩展
小活中用到 mssql, 于是在自己 lnmp 环境中安装各 mssql 数据库
步骤如下:
源码编译安装
# tar zxvf freetds-stable.tgz(解压,)
# cd freetds-0.91
# 编译
# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
# make
# make install
参数解释:
安装 freetds 到目录 /usr/local/freetds:--prefix=/usr/local/freetds
支持 MSSQL2000:--with-tdsver=8.0 --enable-msdblib
配置 FreeTds 的库文件
将 freetds 的库文件所在路径配置到 LD_LIBRARY_PATH 参数中:
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/localfreetds/lib/:
或者直接把 etc/bashrc 的文件 bashrc 直接填写上 LD_LIBRARY_PATH=/usr/localfreetds/lib:$LD_LIBRARY_PATH
这么作的目的是为了避免加载 FreeTds 库文件加载不上的情况。
php 里安装 php-mssql 扩展:
cd /download (把php-mssql扩展下载到download目录里)
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz (下载扩展文件,这里要根据你环境中运行的php版本选择对应的扩展版本下载,我这里php是5.6.30的 所以php-mssql扩展下载对应的版本)
tar -zxvf php-5.6.30.tar.gz
cd /php-5.6.30/ext/mssql
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/
make && make install
编译安装后的结果 如下图
同时 mssql.so 也在 php 扩展文件下生成 (如下图)
把 extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/mssql.so" 添加到 usr/local/php/lib/php.ini 中
引用扩展后,重启 web 服务,通过 phpinfo 查看扩展 mssql 是否开启成功
重启 php /usr/local/php/sbin/php-fpm reload
重启 nginx 进入 nginx 可执行目录 sbin 下,输入命令./nginx -s reload 即可(或者 /application/nginx/sbin/nginx -s reload)
关于MSSQL 附加数据库提示“错误 823”数据恢复实操和sql2000附加数据库错误823的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ibatis 自动生成键 selectkey(Oracle、MYSQL、MSSQL、SQLITE)、Java实现 LeetCode 823 带因子的二叉树(DP)、Linux 系统下 ThinkPHP5 链接 MsSQL、lnmp 环境里安装 mssql 及 mssql 的 php 扩展等相关知识的信息别忘了在本站进行查找喔。
本文标签: