请教关于Sybase IQ空间问题

请教关于Sybase IQ空间问题,第1张

空间问题可能原因:

1、SybaseIQ的事务日志,存放在iq store中,由DBMS管理,所以所有表空间相加不等于数据库空间;

2、SybaseIQ运行过程中可能由于锁的机制,other version增大,可以通过数据库命令: sp_iqstatus查看;

3、空间分配上建议最后使用符号连接,底层变化,不影响dbspace 对应的路径和文件名。

故障现象:

1 sp_iqdbspace统计db空间,占用14TB,同时发现空间使用量,非正常的增长过快

2 sp_iqstatus查询db状态,发现other versions有很大的占用量

3 sp_iqdbsize统计db实际占用空间,发现占用12TB

4 存在数百G,空间的差异

5 由于备份空间问题,有进行增加盘柜空间动作,过程中,对write server有做停机维护,read server没有动作

故障原因:

1 系统为多节点架构1台write server,1台read server

2 重启write server,进行维护,没有通过sybase central,关闭read server的访问,导致read server上,有大量old version的数据,与write server数据不一致

3 old version数据,也是同样保存在iq的main db space中,所以,做sp_iqdbspace统计,会计算到这些数据,而做sp_iqdbsize,统计的是实际数据空间,故不会计算到这些old version的数据

4 old version的数据的检查,对应sp_iqdbsize中的other versions栏位,大小就是后面的数值

解决方法:

1 Sybase central中关闭read server的服务

2 write server上关闭多节点服务

3 write server重新启动IQ服务,让IQ系统做相应检测,释放other versions空间

4 启动多节点服务在write server上的Agent服务

5 在Sybase central中的多节点配置里,启动write server和read server的服务

6 启动后,SQL Remote,应该为active

7 在write server上sp_iqstatus,other version为0,问题解决

优点:数据库系统是用来管理数据的,建立的数理逻辑和集合 *** 作基础上的。

具有高效、可靠、完整、自同步等特性,是业务系统进行数据控制的最佳选择。

数据库系统一般提供高效的数据控制和数据检索功能,采用SQL语言来进行数据 *** 作。

目前市面上流行的数据库系统很多:较小型的数据库系统有:mysql,MSSQL_SERVER等等,适用于企业级的大型数据库有:ORACEL,DB2(IBM),INFORMIX(IBM)等等

缺点:安全性不够,加了用户级密码容易破解

C/S

结构下对服务器要求很高,否则容易造成

MDB

损坏并发数255。

但是对高强度 *** 作适应性差,如果服务器不够好,网络不够好,编程的方法不够好,6-7个人同时访问就能导致

MDB

损坏或者并死不能将

VBA

代码开发的软件系统直接编译成

EXE

可执行文件。

不能脱离

ACCESS

或者

ACCESS

RUNTIME

环境,该环境相对其他软件体积较大(50M左右)

ConnectionManagerjava

import javasql;

public class ConnectionManager {

private static final String DRIVER_CLASS="commicrosoftsqlserverjdbcSQLServerDriver";

private static final String DATABASE_URL="jdbc:sqlserver://localhost:1433;DatabaseName=student";

private static final String DATABASE_USER="xz";

private static final String DATABASE_PASSWORD="test";

private ConnectionManager()

{}

/

返回连接

@return Connection

@throws DBAccessException

/

public static Connection getConnection()

{

Connection dbConnection=null;

try {

ClassforName(DRIVER_CLASS);

dbConnection=DriverManagergetConnection(DATABASE_URL,DATABASE_USER,DATABASE_PASSWORD);

} catch (ClassNotFoundException e1) {

// TODO Auto-generated catch block

e1printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

return dbConnection;

}

/

关闭连接

@param conn

Connection

/

public static void closeConnection(Connection conn)

{

try{

if(conn!=null && !connisClosed())

{

connclose();

conn=null;

}

}catch(Exception ex)

{

Systemoutprintln(exgetMessage());

}

}

/

关闭结果集

@param rs

ResultSet

/

public static void closeResultSet(ResultSet rs)

{

try{

if(rs!=null)

{

rsclose();

rs=null;

}

}catch(Exception ex)

{

Systemoutprintln(exgetMessage());

}

}

/

关闭SQL预处理语句

@param pstmt

PreparedStatement

/

public static void closePreparedStatement(PreparedStatement pstmt)

{

try{

if(pstmt!=null)

{

pstmtclose();

pstmt=null;

}

}catch(Exception ex)

{

Systemoutprintln(exgetMessage());

}

}

/

关闭SQL语句

@param stmt

Statement

/

public static void closeStatement(Statement stmt)

{

try{

if(stmt!=null)

{

stmtclose();

stmt=null;

}

}catch(Exception ex)

{

Systemoutprintln(exgetMessage());

}

}

public static void main(String[]args)

{

try {

Connection con=ConnectionManagergetConnection();

if(!conisClosed())

Systemoutprintln("数据库连接成功。。。。。");

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

}

Userjavapublic class User {

private String username;

private String userpass;

public String getUsername() {

return username;

}

public void setUsername(String username) {

thisusername = username;

}

public String getUserpass() {

return userpass;

}

public void setUserpass(String userpass) {

thisuserpass = userpass;

}

}

UserDAOjavaimport javautil;

import javasql;

public class UserDAO {

public List<User> getAllUser()

{

Connection conn=null;

PreparedStatement pstmt=null;

ResultSet rs=null;

List<User> userList=new ArrayList<User>();

String sql="select UserName,UserPas from Users";

try {

conn=ConnectionManagergetConnection();

pstmt=connprepareStatement(sql);

rs=pstmtexecuteQuery();

while(rsnext())

{

User u=new User();

usetUsername(rsgetString("UserName"));

usetUserpass(rsgetString("UserPas"));

userListadd(u);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}finally

{

ConnectionManagercloseConnection(conn);

ConnectionManagerclosePreparedStatement(pstmt);

ConnectionManagercloseResultSet(rs);

}

return userList;

}

}

最好不要删除,如果可以,你最好备份一下再清空。

如果你对Sybase比较熟,应该可以用一个客户端工具,好像叫什么SQL的,具体名字我忘记了,你可以用这个工具,登录Sybase,然后用delete from 表名

来删除表中的数据。

如果你不太会用这个工具,只要你能找到Sybase的ODBC数据源(或者知道自己怎么建立一个,要求可以修改数据的,不能是只读的)。你可以通过Access连接Sybase的所有表,在可视化的 *** 作下,删除和备份你需要的表的信息和数据。

可以采用以下方法完全卸载该程序:

1、打开“控制面板”选择“添加或删除程序”。

2、进入后找到想要卸载的软件,右键选择“卸载“即可。

4、在打开的卸载对话框正选择完全卸载继续下一步直到卸载完成。

4、卸载完成后重启计算机,这样才能完全删除剩余的残留文件。

4、完成后即可完全卸载该程序。

以上就是关于请教关于Sybase IQ空间问题全部的内容,包括:请教关于Sybase IQ空间问题、各类数据库的优点缺点、java连接数据库的例子等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存