维克系统建置

准备安装套件

解压 O10x86.exe BC1609.exe 及安装的管理系统如 FO1609.exe、HR1609.exe、PI1609.exe …​,在运行后述的工作前先准备好,解压缩的路径缺省为 D:\VICSYS。

安装系统的主程序如下

VicConfig.exe 维克系统建置程序 (D:\VICSYS\Config)

依据安装步骤,一步一步安装。

VicSystems.exe 维克管理系统安装程序 (D:\VICSYS\VICInstall)

一键安装,安装管理系统及安装数据库用户端。
依据「维克系统建置程序」的配置,分发至用户计算机。

维克系统建置程序

数据服务器设置及安装系统数据库,设置管理程序连接数据库参数。

1.安装数据库用户端

运行「维克系统建置程序」(D:\VICSYS\Config\VicConfig.exe)

维克系统建置程序

维克系统建置需要数据库用户端才能运作。安装数据库用户端实际上是运行「维克管理系统安装程序」。

2.设置数据服务器

Oracle XE 安装时缺省字符集为英文,建置程序将修改数据服务器字符集、调整数据服务器参数及 Tablespace。

设置数据服务器

设置本机数据服务器组态

调整 listener.ora。仅限数据服务器在本机 (计算机) 运行,数据服务器版本为 Oracle Database Express Edition 11g 或 18c,并安装于 D:\oraclexe 文件夹。

设置本机数据服务器组态

数据服务器监听器位置(Listener Address)

应采用局域网路位置 (LAN IP),该位置应固定。

监听器位置未改变的情况下仍需运行。
程序判断本机监听器正常运作时才允许运行,若监听器异常请参阅 ORA-12541
数据服务器初始化

修改数据服务器字符集、调整数据服务器参数及 Tablespace。

数据服务器初始化

这里为什么又有「数据库位置」、「数据库连接端口」?

因为是「数据库用户端」,设置值应跟「本机数据服务器组态」相同。

数据服务器初始化-选取字符集

改变字数据库元集,仅适用于初始安装,若已创建数据库,不应再改变。

3.安装系统数据库

安装系统数据库

安装维克系统数据库,必须先安装「共享数据库」(只需安装一次),再安装管理系统数据库。

共享数据库安装

创建共享数据库

设置共享数据库密码

设置共享数据库密码

设置数据库密码为 BC1810 的密码。(不是数据服务器 SYS 跟 SYSTEM 的密码)。
维克系统建置程序,可解码您设置系统数据库的密码设置档 VicConfigUser.ini,若需要可于建置后移动至安全保存区。

管理系统数据库安装

当您在准备安装组件的章节中,若有安装各式系统则该系统选项会激活。

前台数据库安装

管理系统数据库设置

前台数据库设置

创建 FO1810 数据库,需要共享数据库 (本例为 BC1810) 及 密码 (本例为 vicsys)。

管理系统导入文件设置

前台数据库导入设置

您已设置好建置数据库的组态,在按「下一步」前,若需要安装范例,请勾选「范例数据库」。

自订导入说明

导入现有的数据库备份 (.dmp) 文件,于本步骤中自订导入档。

管理系统自订导入设置

前台数据库自订导入设置

导入文件帐户

如导出是采用 EXPUSER 帐户导出 FO1810 如下范例,那么「导入文件帐户」设置为 FO1810 。

EXP EXPUSER/USERCANEXPORT@XE FILE=FO1810.DMP OWNER=FO1810

导入时出现下列消息而数据已导入可忽略。

IMP-00034: 警告: 导出档中找不到 FromUser "FO1810"
已顺利终止导入作业, 但含有警告.

4.管理程序连接设置

建置好系统数据库后,设置好程序连接数据库参数以便程序能连接数据库。
试用单机版,请勾选 IPC 连接。

设置数据库连接参数

下一步 后,将产生 VMC.ini 文件,如下范例。

[DataBase]
UserName=FO1810
Password=数据库密码加密字符串
DataBaseName=(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))(CONNECT_DATA=(SID=XE)))

5.管理程序同步设置

本设置的目的为设置多人同步环境,当程序有更新时自动分发 (选项功能)。
在多人环境中「网络分享文件夹」为系统程序共享文件夹,其方式是在用户端计算机在开机时,自动同步系统程序。另外在「开始」的 VIC Systems 功能表中,亦加入「维克系统更新(无等待)」的功能,用户可随时自行更新。

本步骤设置完成后,在未完成「系统程序同步设置」之前安装的计算机,必须再次运行 VicSystems.exe 维克管理系统安装程序,以便配置「自动同步」的功能。

管理系统程序同步设置

如果按 下一步出错,表示在 Windows 中的共享用户或共享文件夹未设置正确。

出错示例

共享用户或共享文件夹未设置正确

依据 网络分享文件夹错误 来处理。

上述设置完成后,回到「维克系统建置程序」,按 下一步 应该显示 运行完成。

管理系统程序同步设置完成画面

6.数据库互相连接

本设置的目的为设置相同的服务器中多个数据库互相连接 (选项功能)。
如前台系统交易数据传输至总帐系统,人事系统导入前台系统的员工挂帐 …​。

数据库互相连接

7.问题集

网络分享文件夹错误处理
创建 Windows 共享用户名 vicuser,密码为 vicuser。

在桌面上的 [计算机] 点击右键后,选取 [管理]。

计算机管理

在 计算机管理 树状目录中的 [用户] 点击右键后,选取 [新用户]。
注:[用户] 路径是 计算机管理  系统工具  本机用户和组  用户

cfg5 1fix2

输入用户名 vicuser,密码为 vicuser。

创建 Windows 共享文件夹。

以 Windows 资源管理器在文件夹 D:\VICSYS\VICInstall 点击右键后,选取 [内容]。

VICInstall 内容

在 [内容] 的对话框中选取 [共享] 分页,按一下 高级共享

高级共享图例

cfg5 1fix4

[高级共享] 的对话框中选取 [共享此文件夹] 后,按下 确定

我可以重复运行「创建数据库」吗?

可以!重复运行将会删除数据库,维克系统建置程序会 [要求输入数据库目前(旧有)密码]。
要求输入数据库的目前(旧有)密码
注意!删除数据库的意思是目前数据库的数据将会消失。

安装数据库时「重建数据库纲要」是什么?

当采用导入的方式重建数据库,导入数据后运行「重建数据库纲要」以便让数据库组件运作正确。
另外如果您将「共享数据库」运行「创建数据库」 (意思是共享数据库先被删除),当「共享数据库」再次创建后, 必须重建「共享数据库」之外的所有系统数据库纲要, 否则一启动管理信息系统程序时将会引发 ORA-00942 table or view does not exist 的错误!

不知怎么了,出现了「ORA-12541: TNS:没有监听器」的错误。

设置本机数据服务器组态时,不小心操作错误!又好像是改变计算机名称的问题。
您可以试着手动修复,先停止监听器 (可忽略错误)。
注:Windows 10 运行 Windows PowerShell (管理员),习惯用 cmd.exe?那么需要创建 cmd.exe 快捷方式, 并激活「以管理员身份运行」,「以管理员身份运行」下列才能正常运作。

D:\oraclexe\app\oracle\product\11.2.0\server\bin\lsnrctl stop

修改下列文件。(「以管理员身份运行」下列)

notepad D:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\listener.ora

$HOST$ 改为计算机名称或 IP,$PORT$ 修改为 1521。

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
### ADD
        (ENVS="EXTPROC_DLLS=C:\VICRUN\VICORA32.dll;C:\VICRUN\VICORA64.dll")
### ADD
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
### ADD
    (SID_DESC =
      (SID_NAME = XE)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\11.2.0\server)
    )
### ADD
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = $HOST$)(PORT = $PORT$)) (1)
    )
  )
1 若计算机局域网路的 IP 为 192.168.1.2,那么内容为 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))

接着,运行下列命令。

D:\oraclexe\app\oracle\product\11.2.0\server\bin\lsnrctl start

显示结果如下

...
Default Service           XE
Listener Parameter File   D:\oraclexe\app\oracle\product\11.2.0\server\network\a
dmin\listener.ora
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.2)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
  Instance "XE", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

若无法启动「监听器」,请重开机。

维克管理系统安装程序

用户计算机第一次安装时须运行「维克管理系统安装程序」,安装管理系统及数据库用户端。
依据「维克系统建置程序」的配置,分发至用户计算机。

维克管理系统安装程序

多人共享安装

应在 AP (指保存「管理信息程序」的计算机) 的共享文件夹来安装。

系统主程序参数

启动设置档

实际的主程序依据系统不同,如前台系统为 FOVMC.exe,「启动设置档」缺省为 (Windows 快捷方式内容中的)「起始位置」内的 VMC.ini (可不需要设置)。

FOVMC.exe IniFile=启动设置档

可指定「启动设置档」为不同的文件,IniFile 可为「绝对路径」或「相对路径」,「相对路径」则为相对于「起始位置」的路径。 如 IniFile=..\VMC.ini,则启动设置档在「起始位置」的上层。
注:主程序快捷方式的「起始位置」一般情况为程序所在文件夹,文件夹内必须要有 VMC.db 文件,若没有该文件将无法启动。

Connect 参数

FOVMC.exe Connect=[数据库帐户][/数据库密码][@服务器位置]

连接数据库的参数可由 Connect 来变更,不需要为了连接不同数据库而创建不同的「启动设置档」,不过有指定「启动设置档」并不影响下列逻辑。
上述的 Connect 参数若不指定,则以「启动设置档」内的设置值为准,说明如下。

Connect=数据库帐户 IniFile=启动设置档
数据库密码、服务器位置为「启动设置档」设置值。

Connect=数据库帐户@服务器位置
数据库密码为「起始位置」内的 VMC.ini 设置值。

以下类推
Connect=@服务器位置
Connect=/数据库密码
Connect=/数据库密码@服务器位置

Connect 中的「数据库密码」不应在快捷方式中直接设置,主程序会读取「启动设置档」的密码。 当数据库密码不同时应正规采用「启动设置档」,可使用 设置数据库连接参数 来产生 VMC.ini 内的 Password=数据库密码加密字符串

连接数据服务器位置设置

除了由 Net Manager 程序所设置的服务命名之外,亦能采用 Easy Connect 语法。

@host[:port][/service_name]
host 数据库主机名称或 IP 位置
port 数据库监听端口,缺省为 1521。
server_name 数据库的服务器名称,「Oracle XE」服务器名称为 XE。
Easy Connect 范例
FOVMC.exe Connect=@192.168.1.1:1521/XE
注:其中 1521 为默认值,可不需指定。
以 IPC 连接的 TNS Connect String (IPC 只能采用本方法设置)
FOVMC.exe Connect=@(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))(CONNECT_DATA=(SID=XE)))
以 TCP 连接的 TNS Connect String (少用)
FOVMC.exe Connect=@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$HostName)(PORT=$Port))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=$ServiceName)))
$HostName,数据库主机名称或 IP 位置。
$Port,数据库监听端口,缺省为 1521。
$ServiceName 数据库的服务器名称,「Oracle XE」服务器名称为 XE。
手机服务器设置

本地计算机为「手机服务器」,其「服务端口」支持 IniFile 及 Connect。

ServerPort=port
port 服务端口,缺省为 211。

VMC.ini 说明

[VMC] 区段
[VMC]
# 指定用户设置档
UserFile=C:\VICRUN\INI\FO_USER.INI

# 指定传真、信件发送及 RFID 的设备设置档,可参考 Profile.ini 内的说明。
Profile=C:\VICRUN\INI\Profile.INI

# 新分页中的图档,若要改变图档,可直接取代 StartImage.png 或改变 VMC.ini 文件。
StartImage=StartImage.png

UserFile 跟 Profile 的文件夹跟主程序文件夹不同的主要原因;在于更新程序时将会同步程序文件夹(C:\VICRUN\MIS)。 UserFile 跟 Profile 可在不同计算机上个别设置,不受程序更新影响。

[DataBase] 区段
[DataBase]
# 下列两个为数据库驱动程序的设置,一般情况不需要去改。
DriverName=ORACLE
VendorLib=C:\VICRUN\O10x86\app\BIN\OCI.DLL

# 数据库名称 (Oracle User Name)
UserName=FO1810

# 数据库密码,由建置程序加密。
Password=数据库密码加密字符串

# 数据库位置,由建置程序设置。(本例即为前述的 IPC TNS Connect String)
DataBaseName=(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))(CONNECT_DATA=(SID=XE)))
[Server] 手机服务器区段
[Server]
# 手机服务端口,默认值为 211
Port=211

用户设置档

实际文件由 VMC.ini 文件内的 [VMC] 区段 UserFile 来决定,如前述中 UserFile=C:\VICRUN\INI\FO_USER.INI。

用户设置档
[DataBase]
Character_Set=1 (1)
1 将数据库字集转换成本地计算机字集。

上述设置亦可由 VMC.INI 设置。

Character_Set 字集转换

当数据库字集跟本地计算机字集不同时,如正体中文操作系统读取简体中文数据库,需设置数据库转换成用户计算机的 (正体中文) 字集,该转换工作是由数据库来完成,应设置为「867 ZHT16MSWIN950」(正体中文) 或设置为 1 自动转换。

Character_Set Description

未设置

不转换字集

0

不转换字集

1

自动转换,操作系统为简体中文时转换成 852,正体中文时转换为 867,其他语言不转换字集。

852

转换成 ZHS16GBK 简体中文

867

转换成 ZHT16MSWIN950 正体中文

列出数据库所有字集
COL CHARACTER_SET FORMAT 9999
COL NLS_CHARSET_NAME FORMAT A30
select nls_charset_id(value) CHARACTER_SET, value NLS_CHARSET_NAME
from  v$nls_valid_values
where parameter = 'CHARACTERSET'
order by nls_charset_id(value)
/

数据库导出

提供 _ExpDB7z.cmd 文件,导出时以手动或采用「任务计划」运行,请修改 D:\VICSYS\Config\DUMP\_ExpDB7z.cmd 以合乎需求。

_ExpDB7z.cmd
REM _ExpDB7z.cmd

REM ------------------------------ Setting
REM Change $HOST$ to your database host name or IP.
REM ex. SET TNSCONN=EXPUSER/USERCANEXPORT@192.168.1.2:1521/XE
SET TNSCONN=EXPUSER/USERCANEXPORT@$HOST$:1521/XE (1)
SET Z7CMD="C:\Program Files\7-Zip\7z.exe" (2)

SET EXPCMD="C:\VICRUN\O10x86\app\BIN\EXP.EXE" %TNSCONN% STATISTICS=NONE GRANTS=N TRIGGERS=N

REM ------------------------------ NLS_LANG
REM Modify the NLS_LANG of the export database

SET NLS_LANG=AMERICAN_AMERICA.ZHT16MSWIN950 (3)
rem SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

MD temp

REM ------------------------------ Export database
REM Modify the database you want to export
%EXPCMD% FILE=TEMP\BC1810.DMP OWNER=BC1810
rem %EXPCMD% FILE=TEMP\FO1810.DMP OWNER=FO1810 (4)
rem %EXPCMD% FILE=TEMP\HR1810.DMP OWNER=HR1810
rem %EXPCMD% FILE=TEMP\PI1810.DMP OWNER=PI1810
rem %EXPCMD% FILE=TEMP\AC1810.DMP OWNER=AC1810
rem %EXPCMD% FILE=TEMP\FA1810.DMP OWNER=FA1810

for /f "tokens=2 delims==" %%G in ('wmic path win32_localtime get dayofweek /value') do set _DOW=%%G
DEL DUMP%_DOW%.7z
CD temp
%Z7CMD% a ..\DUMP%_DOW% *.dmp
CD ..
DEL temp\*.dmp
RD temp

REM ------------------------------ Copy .7z to another path
rem COPY DUMP%_DOW%.7z \\SomeServer\SomePath (5)
1 将 $HOST$ 改为数据服务器的计算机名称或 IP,数据库监听端口缺省为 1521,「Oracle XE」服务器名称为 XE。
2 Z7CMD 为 7Z 压缩程序于 7-Zip 繁体中文版官方网站 下载。
注意!64 比特操作系统若安装 32 比特 7z,请修改为
SET Z7CMD="C:\Program Files (x86)\7-Zip\7z.exe"
3 正体中文本集为 ZHT16MSWIN950 简体为 ZHS16GBK
4 按您安装的系统数据库导出。
5 请修改成拷贝至其他计算机或其他实体硬盘。