SYMAPI配置数据库有时也被称为主机配置数据库,或SYMAPI数据库(由于该文件的命名方式),或Symmetrix数据库文件。所有这些名称都是指同一个数据库配置文件:symapi_db.bin,后文将会详细描述该文件。
数据库文件的位置
UNIX系统中,数据库配置文件的默认路径为:
/var/symapi/db/symapi_db.bin
Windows系统中,数据库配置文件的默认路径为:
C:\Program
Files\EMC\Symapi\db\symapi_db.bin
Open
VMS系统,数据库配置文件的默认路径为:
SYMAPI$DB:symapi_db.bin
用户可根据需要创建额外的.bin文件。
数据库文件的加锁
Solution
Enabler
V7.0及以上版本使用数据库加锁文件。该文件由系统自动创建并与数据库配置文件采用相同的命名方式,只是后缀中添加_xlock字段。例如:symapi_db.bin_xlock。
Solution
Enabler使用加锁文件对数据库进行顺序访问,该文件仅用作锁定而不包含任何数据。
如果为了限制授权用户对Solution
Enabler进行管理 *** 作而对symapi_db.bin文件进行保护,那么同样需要保护加锁文件。symapi_db.bin和symapi_db.bin_xlock文件应当被赋予相同的保护层级。
数据库文件的更改
查看当前正在使用的Symmetrix数据库配置文件,输入以下命令:
symcli
–def
更改当前使用的Symmetrix数据库配置文件,客户需要修改环境变量SYMCLI_DB_FILE。
例如,通过C
shell更改UNIX主机的symbackup_db.bin文件,输入:
setenv
SYMCLI_DB_FILE
/var/symapi/db/symbackup_db.bin
在Windows系统上进行同样的 *** 作,输入:
set
SYMCLI_DB_FILE=C:\Program
Files\EMC\Symapi\db\symbackup_db.bin
Client/Server模式下更改数据库
出于安全因素的考虑,在client/server模式下数据库配置文件必须存放于数据库默认路径下。
UNIX系统上,数据库配置文件的默认路径是:
/var/symapi/db
Window系统该文件的默认路径是:
C:\Program
Files\EMC\Symapi\db
访问模式
SYMCLI命令使用不同的模式对Symmetrix数据库配置文件进行读写:
read/write
—
用于控制和/或修改数据库参数的命令,将数据库文件读入内存,并对内存中数据库和数据库文件进行同步修改。在以上 *** 作期间,数据库文件被锁定。
read/no
write
—
用于列出或显示数据库参数的命令,将数据库文件读入内存并允许对内存中数据库进行修改,而数据库文件本身没有改变。以上 *** 作期间,数据库文件未被锁定。
命令模式:在线和离线
SYMCLI命令可运行在online和offline两种模式下。在online模式下执行的命令,例如控制配置 *** 作,自动尝试从存储阵列中采集最新状态和模式信息,并同时更新内存中的数据库和主机上的数据库配置文件。如果配置更改发生,online模式下执行的命令将会试图发现更改对象,提取并加载更新信息。
执行在offline模式下的命令,例如symcfg
list,仅从配置数据库中提取数据。
阻止数据库同步
用户可以通过使用环境变量SYMCLI_OFFLINE来强制一些命令在offline模式执行,以阻止Symmetrix存储阵列更新数据库。
例如,强制UNIX主机C
shell命令全局运行在offline模式下,可输入:
setenv
SYMCLI_OFFLINE
1
获取数据库配置信息
使用symcfg
–db命令,会输出关于当前所在使用的数据库的基本配置信息。
1.首先先创建一个db.properties的配置文件。 在配置文件中输入配置信息如下: driver=com.microsoft.sqlserver.jdbc.SQLServerDriver url=jdbc:sqlserver://localhost:1433DatabaseName=books user=sa password=sa 2.创建一个加载db.properties的文件Env.java。 在java文件中加载配置信息如下: public class Evn extends Properties{ private static Evn instanceprivate Evn(){ //通过构造方法读取配置文件 InputStream is=getClass().getResourceAsStream("/db.properties")try { load(is)} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace()} } public static Evn getInstance(){ //单例模式创建、获得对象实例。 if(instance==null){ makeInstance()} return instance} public static synchronized void makeInstance() { if(instance==null){ instance=new Evn()} } } 3.读取数据方法 public class Test { public static void main(String[] args){ String driver=Env.getInstance().getProperty("driver")String url=Env.getInstance().getProperty("url")String user=Env.getInstance().getProperty("user")String password=Env.getInstance().getProperty("password") System.out.println(driver)System.out.println(url)System.out.println(user)System.out.println(password)} }满意请采纳
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)