Installation d’un serveur de réplication Sybase RS 15.5 64 bits et sa base SQL Anywhere ERSSD avec un fichier de ressources et rs_init

Logo

Introduction

Dans cet article, un serveur de réplication Sybase 15.5 64 bits (Real Time Loading Edition for IQ) est créé sur une plateforme Sun Solaris 10 X86 (AMD) avec un fichier de ressources et les opérations effectuées sont décortiquées pas à pas. Utiliser un fichier de ressources, permet d’industrialiser la création d’un serveur de réplication et évite la lourdeur des interfaces graphiques du binaire rs_init.

Dans cette installation, la base RSSD (Replication Server System Database) est une base ERSSD (Embedded RSSD). La base ERSSD est une base Sybase SQL Anywhere 11.0 pour Replication Server 15.5 et la distribution SQL Anywhere 11 est embarquée dans la distribution de Sybase Replication Server 15.5 ($SYBASE/$SYBASE_REP/ASA11). Les bases ERSSD offrent plus de souplesse pour les procédures d’administration et de disaster/recovery par rapport aux bases Sybase RSSD hébergées dans des serveurs Sybase Adaptive Server Enterprise et permettent d’économiser un jeton Sybase ASE 15.

Le contexte du schéma de réplication est donné dans le graphique ci-dessous :

Architecture RS 15.5

Les composants installés par un fichier de ressources sont dans cet article :

  • la base de données ERSSD SQL Anywhere RSD_U1_ASA.
  • le serveur de réplication IDB_U1_REP.

Environnement Replication Server 15.5 64 bits

IDB_U1_REP est créé avec une distribution Replication Server 15.5 64 bits (RS 15.5). Cette distribution est installée dans le répertoire /Software/sybase/repsrv-15.5 et n’est pas installée dans une distribution Sybase ASE 15 classique, ceci dans le but d’offrir à Sybase Replication Server 15.5 son propre Open Client 15.0 en cas de nécessité de patch.

Pour prendre l’environnement Replication Server 15.5 64 bits, les variables ci-dessous doivent être définies :

export SYBASE=/Software/sybase/repsrv-15.5
export SYBASE_REP=REP-15_5
export SYBASE_OCS=OCS-15_0

PATH=$SYBASE/$SYBASE_REP/bin:$SYBASE/$SYBASE_OCS/bin:$PATH
export PATH

LD_LIBRARY_PATH=$SYBASE/$SYBASE_REP/lib64:$SYBASE/$SYBASE_OCS/lib:
$SYBASE/$SYBASE_OCS/lib/lib3p64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

La variable $SYBASE_REP est très importante car elle définit le répertoire REP-15_5 dans la distribution de Sybase Replication Server 15.5.

Création du serveur de réplication et de la base ERSSD

Préparation à la création du serveur de réplication RS 15.5

Le fichier interfaces dans le répertoire /Software/sybase est d’ores et déjà préparé et contient toutes les entrées pour les serveurs RSD_U1_ASA et IDB_U1_REP. Un lien vers le fichier interfaces est créé dans la distribution Replication Server 15.5 (/Software/sybase/repsrv-15.5) :

sybase@SRVUNXFR > cd  /Software/sybase/repsrv-15.5
sybase@SRVUNXFR > ln -fs /Software/sybase/interfaces interfaces

Exemple de fichier interfaces avec les entrées RSD_U1_ASA et IDB_U1_REP :

/Software/sybase/interfaces
…
IDB_U1_REP
        master tli tcp SRVUNXFR 30060
        query tcp ether SRVUNXFR 30060

RSD_U1_ASA
        master tcp ether localhost 30080
        query tcp ether localhost 30080
…

Le fichier de ressources de création du serveur de réplication

Un fichier exemple de ressources install.rs est fourni en standard dans la distribution Replication Server dans le répertoire <localisation_repserver>/$SYBASE_REP/init/rs

(dans le cas pratique de cette documentation : /Software/sybase/reprsrv-15.5/REP-15_5/init/rs).

Il suffit de copier ce fichier install.rs et de personnaliser cette copie pour la création du nouveau Replication Server IDB_U1_REP. Le fichier ressource de création de IDB_U1_REP est appelé install_IDB_U1_REP.rs et installé dans le répertoire /Software/sybase/repsrv-15.5/REP-15_5/install.

Sections du fichier install_IDB_U1_REP.rs

Dans le fichier de ressources, les paramètres sybinit.release_directory, sybinit.product et rs.rs_operation doivent être impérativement renseignés :

sybinit.release_directory Répertoire d’installation de la distribution Replication Server /Software/sybase/repsrv-15.5
sybinit.product Produit à installer (rs pour Replication Server) rs
rs.rs_operation Précise si il s’agit d’une installation (rs_install), d’un upgrade (rs_upgrade) ou d’un downgrade (rs_downgrade) d’un système de réplication. rs_install
install_IDB_U1_REP.rs
sybinit.release_directory: /Software/sybase/repsrv-15.5
sybinit.product: rs
rs.rs_operation: rs_install

ID SERVER INFORMATION

La section ID SERVER INFORMATION précise les paramètres du serveur de réplication dans un contexte où un serveur de réplication primaire est installé avec des serveurs de réplication secondaire.

Dans l’architecture envisagée, il n’existe pas de serveurs de réplication secondaire avec des routes et le serveur de réplication à installer est donc systématiquement un serveur primaire.

rs.rs_idserver_name Nom du serveur de réplication primaire IDB_U1_REP
rs.rs_id_server_is_rs_server Le serveur de réplication à installer est il le serveur de réplication primaire ? yes
install_IDB_U1_REP.rs
# ID SERVER INFORMATION
rs.rs_idserver_name: IDB_U1_REP
rs.rs_id_server_is_rs_server: yes
rs.rs_idserver_user: USE_DEFAULT
rs.rs_idserver_pass: USE_DEFAULT
rs.rs_start_rs_id: USE_DEFAULT
rs.rs_start_db_id: USE_DEFAULT

REPLICATION SERVER INFORMATION

La section REPLICATION SERVER INFORMATION précise les paramètres du serveur de réplication :

rs.rs_name Nom du serveur de réplication IDB_U1_REP
rs.rs_requires_ltm Indique si le serveur de réplication utilise la technologie LTM (Log Transfer Manager), technologie mis en œuvre dans les versions ASE 11.x et RS 11.x, ce qui n’est pas le cas ici. no
rs.rs_needs_repagent Indique si la base système de réplication RSSD du serveur de réplication à installer est répliquée vers d’autres serveurs de réplication par un agent de réplication no
rs.rs_rs_errorlog Localisation du fichier de log du RS /Software/sybase/dba/IDB_U1_REP/log/IDB_U1_REP.log
rs.rs_rs_cfg_file Localisation du fichier de configuration du RS /Software/sybase/dba/IDB_U1_REP/cfg/IDB_U1_REP.cfg
rs.rs_charset Jeu de caractères du RS USE_DEFAULT (iso_1 pour les plateformes Solaris)
rs.rs_language Langage du RS USE_DEFAULT (english)
rs.rs_sortorder Ordre de tri du RS USE_DEFAULT (binary)
install_IDB_U1_REP.rs
# REPLICATION SERVER INFORMATION
rs.rs_name: IDB_U1_REP
rs.rs_requires_ltm: no
rs.rs_needs_repagent: no
rs.rs_rs_errorlog: /Software/sybase/dba/IDB_U1_REP/log/IDB_U1_REP.log
rs.rs_rs_cfg_file: /Software/sybase/dba/IDB_U1_REP/cfg/IDB_U1_REP.cfg
rs.rs_charset: USE_DEFAULT
rs.rs_language: USE_DEFAULT
rs.rs_sortorder: USE_DEFAULT

REPLICATION SERVER SYSTEM DATABASE CHOICE

La section REPLICATION SERVER SYSTEM DATABASE CHOICE offre ici le choix du moteur de base de données pour la base système RSSD (Replication Server System Database) : Adaptive Server Enterprise ou SQL Anywhere (ERSSD) :

rs.rs_rssd_embedded Base embarquée ERSSD SQL Anywhere (par défaut : no). Dans cet article, la base ERSSD est choisie.
install_IDB_U1_REP.rs
# REPLICATION SERVER SYSTEM DATABASE CHOICE
rs.rs_rssd_embedded: yes

EMBEDDED REPLICATION SERVER SYSTEM DATABASE INFORMATION

La section EMBEDDED REPLICATION SERVER SYSTEM DATABASE INFORMATION paramètre l’installation de la base RSSD SQL Anywhere (ERSSD). Ce paramétrage est appliqué que si la base RSSD embarquée SQL Anywhere a été choisie à l’étape précédente (rs.rs_rssd_embedded : yes)

rs.rs_erssd_name Nom de la base RSSD SQL Anywhere. Le nom de la base SQL anywhere indiqué ici est celui qui est référencé dans le fichier interfaces RSD_U1_ASA.
rs.rs_erssd_database_dir Répertoire du fichier de données <rs_erssd_name>.db de la base SQL Anywhere. /DAS/sybase/RSD_U1_ASA
rs.rs_erssd_translog_dir Répertoire du journal <rs_erssd_name>.log de la base SQL Anywhere. /DAS/sybase/RSD_U1_ASA
rs.rs_erssd_backup_dir Répertoire du miroir <rs_erssd_name>.mlg du journal de la base SQL Anywhere et des sauvegardes de la base SQL Anywhere. /DAS/sybase/RSD_U1_ASA/mirror
rs.rs_erssd_errorlog_dir Répertoire de l’error log <rs_erssd_name>.out de la base SQL Anywhere. /Software/sybase/dba/RSD_U1_ASA/log
install_IDB_U1_REP.rs
# EMBEDDED REPLICATION SERVER SYSTEM DATABASE INFORMATION
rs.rs_erssd_name: RSD_U1_ASA
rs.rs_erssd_database_dir: /DAS/sybase/RSD_U1_ASA
rs.rs_erssd_translog_dir: /DAS/sybase/RSD_U1_ASA
rs.rs_erssd_backup_dir: /DAS/sybase/RSD_U1_ASA/mirror
rs.rs_erssd_errorlog_dir: /Software/sybase/dba/RSD_U1_ASA/log

Les sections REPLICATION SERVER SYSTEM DATABASE INFORMATION et REPLICATION SERVER SYSTEM DATABASE DEVICE INFORMATION ne sont pas utilisées si la base données RSSD embarquée SQL Anywhere a été choisie (ce qui est le cas ici). Ces 2 sections ne concernent que les bases RSSD hébergées dans un serveur Sybase Adaptive Server Enterprise. Pour plus d’information pour les bases RSSD hébergées dans un serveur ASE : Installation d’un serveur de réplication Sybase 15 avec un fichier de ressources

DISK PARTITION INFORMATION

La section DISK PARTITION INFORMATION précise les paramètres de la première partition du serveur de réplication :

rs.rs_diskp_name Localisation et nom du fichier physique de la première partition du serveur de réplication à créer /DAS/sybase/IDB_U1_REP/stabledevices/PART01.dat
rs.rs_diskp_lname Nom logique de la première partition PART01
rs.rs_diskp_size Taille en MB de la première partition 1000
rs.rs_diskp_vstart Numéro logique de la première partition (vdevno) si on souhaite un numéro logique différent.
install_IDB_U1_REP.rs
# DISK PARTITION INFORMATION
rs.rs_diskp_name: /DAS/sybase/IDB_U1_REP/stabledevices/PART01.dat
rs.rs_diskp_lname: PART01
rs.rs_diskp_size: 1000
rs.rs_diskp_vstart: 0

Sur les plateformes Unix, le fichier physique pour la partition doit être créé avec la commande touch.

shell > cd /DAS/sybase/IDB_U1_REP/stabledevices
shell > touch PART01.dat

Autres sections

La section REMOTE SITE CONNECTION INFORMATION précise le user et le mot de passe que les autres Replication Server potentiels utiliseront pour se connecter dans le contexte de la mise en place de routes. Le user et le mot de passe par défaut sont respectivement : <replication_servername>_rsi et <replication_servername>_rsi_ps.

install_IDB_U1_REP.rs
# REMOTE SITE CONNECTION INFORMATION
rs.rs_rs_user: USE_DEFAULT
rs.rs_rs_pass: USE_DEFAULT

La section SYSTEM DATABASE LOG TRANSFER MANAGER INFORMATION précise les paramètres si de la technologie LTM (Log Transfer Manager, ASE 11.x et RS 11.x) est mise en œuvre, ce qui n’est pas le cas ici (rs.rs_requires_ltm: no). Il n’est pas nécessaire de renseigner cette section.

La section ID SERVER INTERFACES INFORMATION précise les paramètres à ajouter dans le fichier interfaces pour le serveur de réplication primaire (ID SERVER), ce qui n’est pas le cas ici car il ne s’agit pas de l’installation d’un serveur de réplication secondaire. Il n’est donc pas nécessaire de renseigner cette section et de laisser rs.do_add_id_server à no.

install_IDB_U1_REP.rs
# ID SERVER INTERFACES INFORMATION
rs.do_add_id_server: no

La section REPLICATION SERVER INTERFACES INFORMATION précise les paramètres à ajouter dans le fichier interfaces pour le serveur de réplication, ce qui n’est pas le cas ici car le fichier interfaces est déjà renseigné avec le serveur de réplication. Il n’est pas nécessaire de renseigner cette section et de laisser rs.do_add_replication_server à no. Cette section ne s’applique par ailleurs qu’aux plateformes Unix, pour les plateformes Windows, les entrées doivent être saisies manuellement dans le fichier sql.ini.

install_IDB_U1_REP.rs
# REPLICATION SERVER INTERFACES INFORMATION
rs.do_add_replication_server: no
...

La section LOG TRANSFER MANAGER INTERFACES INFORMATION précise les paramètres à ajouter dans le fichier interfaces si de la technologie LTM (Log Transfer Manager, ASE 11.x et RS 11.x) est mise en œuvre, ce qui n’est pas le cas ici (rs.rs_requires_ltm: no). Il n’est pas nécessaire de renseigner cette section et de laisser rs.do_add_ltm à no.

install_IDB_U1_REP.rs
# LOG TRANSFER MANAGER INTERFACES INFORMATION - IF RSSD HAS LTM
rs.do_add_ltm: no
...

La section REPLICATION SERVER SECURITY INFORMATION précise les paramètres propres à la sécurité (utilisation de DCE, Kerberos) et ne sont disponibles que pour NT et Solaris. Il n’est pas nécessaire de renseigner cette section et de laisser rs.rs_network_security_enable à no.

install_IDB_U1_REP.rs
# REPLICATION SERVER SECURITY INFORMATION
rs.rs_network_security_enable: no
...

Lancement de la création (rs_init)

Après personnalisation du fichier de ressource install_IDB_U1_REP.rs, la création du serveur de réplication IDB_U1_REP et la création de la base de données ERSSD sont déclenchées avec le binaire rs_init dans le répertoire <path_distribution_replicationserver>/$SYBASE_REP/install (/Software/sybase/repsrv-15.5/REP-15_5/install dans le contexte de cet article).

Syntaxe :

        rs_init
         [-a]
         [-c charset]
         [-e]
         [-h]
         [-l language]
         [-log log_file]
         [-r resource_file]
         [-s release_directory]
         [-v]

L’option -r permet de donner un fichier de ressources au binaire rs_init et évite ainsi l’utilisation graphique interactive du binaire rs_init.

Pour lancer la création de IDB_U1_REP avec le binaire rs_init en utilisant le fichier de ressource /Software/sybase/repsrv-15.5/REP-15_5/install/install_IDB_U1_REP.rs

export SYBASE=/Software/sybase/repsrv-15.5
export SYBASE_REP=REP-15_5
export SYBASE_OCS=OCS-15_0

PATH=$SYBASE/$SYBASE_REP/bin:$SYBASE/$SYBASE_OCS/bin:$PATH
export PATH

LD_LIBRARY_PATH=$SYBASE/$SYBASE_REP/lib64:$SYBASE/$SYBASE_OCS/lib:
$SYBASE/$SYBASE_OCS/lib/lib3p64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
$SYBASE/$SYBASE_REP/install/rs_init -r/$SYBASE/$SYBASE_REP/install/install_IDB_U1_REP.rs
         -log $SYBASE/$SYBASE_REP/install/install_IDB_U1_REP.log

Opérations effectuées lors de la création

Dans ce paragraphe sont expliquées les différentes phases lancées avec le binaire rs_init , phases qui sont :

(le fichier de log allégé est donné en annexe 1 de cette documentation).

  1. création de la base SQL Anywhere ERSSD RSD_U1_ASA
  2. création des logins dans la base ERSSD
  3. création des objets dans la base SQL Anywhere ERSSD
  4. démarrage du serveur de réplication
  5. création de la partition du serveur de réplication
  6. création des comptes dans Replication Server (Agents de réplications, routes RSI)
  7. lancement des scripts dans la base SQL Anywhere ERSSD RSD_U1_ASA pour les réplications hétérogènes

Étape 1 : création de la base SQL Anywhere ERSSD RSD_U1_ASA

Initialisation de la base SQL Anywhere RSD_U1_ASA avec le binaire dbinit :

/Software/sybase/repsrv-15.5/REP-15_5/ASA11/bin/dbinit -c
  -b 
  -k 
  -o /Software/sybase/dba/RSD_U1_ASA/log/RSD_U1_ASA.out
  /DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.db

Configuration du journal (.log) et de son miroir (.mlg) pour la base SQL Anywhere RSD_U1_ASA avec le binaire dblog :

/Software/sybase/repsrv-15.5/REP-15_5/ASA11/bin/dblog 
  -m /DAS/sybase/RSD_U1_ASA/mirror/RSD_U1_ASA.mlg 
  -t /DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.log 
  -o /Software/sybase/dba/RSD_U1_ASA/log/RSD_U1_ASA.out
  /DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.db

Lancement de la base SQL Anywhere avec le binaire dbspawn, le port est automatiquement déterminé à partir du fichier interfaces lu au démarrage de rs_init :

/Software/sybase/repsrv-15.5/REP-15_5/ASA11/bin/dbspawn 
   -f
   -q dbsrv11 -s none -ti 0 
   -x "tcpip(PORT=30080;DOBROAD=NO;BLISTENER=NO)" 
   -o /Software/sybase/dba/RSD_U1_ASA/log/RSD_U1_ASA.out
   /DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.db 

Étape 2 : création des logins dans la base ERSSD

Création des logins IDB_U1_REP_RSSD_prim et IDB_U1_REP_RSSD_maint dans la base ERSSD RSD_U1_ASA:

GRANT CONNECT TO IDB_U1_REP_RSSD_prim IDENTIFIED BY IDB_U1_REP_RSSD_prim_ps;

GRANT MEMBERSHIP IN GROUP rs_systabgroup TO IDB_U1_REP_RSSD_prim;

GRANT DBA TO IDB_U1_REP_RSSD_prim;

REVOKE CONNECT FROM DBA;

GRANT CONNECT TO IDB_U1_REP_RSSD_maint IDENTIFIED BY IDB_U1_REP_RSSD_maint_ps;

GRANT MEMBERSHIP IN GROUP rs_systabgroup TO IDB_U1_REP_RSSD_maint;

GRANT CONNECT TO dbo IDENTIFIED BY dbo;

Attention : le compte DBA créé par défaut à l’initialisation d’une base SQL Anywhere est désactivé (revoke connect from DBA). Le compte IDB_U1_REP_RSSD_prim acquiert le droit DBA dans la base ERSSD (grant DBA to IDB_U1_REP_RSSD_prim).

Étape 3 : création des objets dans la base SQL Anywhere ERSSD

Dans la phase 3, le binaire rs_init lance successivement les scripts rs_init_asa.sql, rs_install_systables_asa.sql et rsprocs_asa.sql installés dans le répertoire <installation_ replicationserver>/$SYBASE_REP/scripts (/Software/sybase/repsrv-15.5/REP-15_5/scripts dans le cadre de cet article).

Le script rs_install_systables_asa.sql créé les types, les tables et le groupe rs_systabgroup dans la base ERSSD.

Le script rsprocs_asa.sql installe les procédures stockées système rs_% dans la base RSSD.

Étape 4 : démarrage du serveur de réplication

Dans cette phase, le fichier de configuration IDB_U1_REP.cfg du serveur de réplication est généré et le serveur de réplication est démarré avec la ligne de commande ci-dessous, ligne de commande encapsulée dans le fichier RUN_IDB_U1_REP généré à la volée par rs_init dans le répertoire $SYBASE/$SYBASE_REP/install (/Software/sybase/repserver-15.5/REP-15_5/install) :

/Software/sybase/repsrv-15.5/REP-15_5/install/RUN_IDB_U1_REP > /Software/sybase/repsrv-15.5/REP-15_5/init/logs/tmp 2>&1
RUN_IDB_U1_REP
/Software/sybase/repsrv-15.5/REP-15_5/bin/repserver -SIDB_U1_REP
-C/Software/sybase/IDB_U1_REP/cfg/IDB_U1_REP.cfg
-E/Software/sybase/IDB_U1_REP/log/IDB_U1_REP.log
-I/Software/sybase/repsrv-15.5/interfaces

Étape 5 : création de la partition du serveur de réplication

La partition définie dans le fichier de ressources est alors créée avec la commande add partition au sein de replication server

add partition "PART01" on '/DAS/sybase/IDB_U1_REP/stabledevices/PART01.dat'
with size 1000 starting at 0
go

Étape 6 : création des comptes Replication Server (Agents de réplications, routes RSI)

Définition des users pour les agents de réplication et autres serveurs de réplication dans le serveur de réplication (routes RS) :

create user "IDB_U1_REP_rsi" set password "IDB_U1_REP_rsi_ps"
grant CONNECT SOURCE to "IDB_U1_REP_rsi"

create user "IDB_U1_REP_ra" set password "IDB_U1_REP_ra_ps"
grant CONNECT SOURCE to "IDB_U1_REP_ra"

create user "IDB_U1_REP_id_user" set password "IDB_U1_REP_id_passwd"

Étape 7 : lancement des scripts dans la base SQL Anywhere ERSSD RSD_U1_ASA pour les réplications hétérogènes

En dernière étape, mais celle-ci ne concerne que les versions de Replication Server 15.5 avec les options de réplication hétérogène : lancement des scripts pour les réplications hétérogènes, scripts localisés dans le répertoire $SYBASE/$SYBASE_REP/scripts (/Software/sybase/repserver-15.5/REP-15_5/scripts) :

...
Loaded script 'rs_db2_to_msss.sql' successfully.
...

Démarrage et arrêt du serveur de réplication IDB_U1_REP

Le fichier de configuration du serveur de réplication

Comme indiqué dans le fichier ressource de la création du serveur de réplication IDB_U1_REP, le fichier de configuration IDB_U1_REP.cfg du serveur de réplication a été créé par rs_init :

rs.rs_rs_cfg_file: /Software/sybase/IDB_U1_REP/cfg/IDB_U1_REP.cfg

Dans ce fichier de configuration initial sont précisés si il s’agit d’une base ERSSD (RSSD_embedded=yes), les paramètres de la base ERSSD (errorlog, port, localisation des fichiers de la base SQL Anywhere, etc.), le user primaire et son mot de passe, le user de maintenance et son mot de passe etc…

IDB_U1_REP.cfg
#
# Configuration file for Replication Server 'IDB_U1_REP'. Created by rs_init.
#
RSSD_embedded=yes
RSSD_server=RSD_U1_ASA
RSSD_database=RSD_U1_ASA
RSSD_primary_user=IDB_U1_REP_RSSD_prim
RSSD_primary_pw=IDB_U1_REP_RSSD_prim_ps
RSSD_maint_user=IDB_U1_REP_RSSD_maint
RSSD_maint_pw=IDB_U1_REP_RSSD_maint_ps
RSSD_ha_failover=no
ID_server=IDB_U1_REP
ID_user=IDB_U1_REP_id_user
ID_pw=IDB_U1_REP_id_passwd
RS_charset=iso_1
RS_language=us_english
RS_sortorder=binary
erssd_errorlog=/Software/sybase/dba/RSD_U1_ASA/log/RSD_U1_ASA.out
erssd_port=30080
#
# Do not edit the following ERSSD lines.
#
erssd_dbfile=/DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.db
erssd_translog=/DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.log
erssd_logmirror=/DAS/sybase/RSD_U1_ASA/mirror/RSD_U1_ASA.mlg
erssd_backup_dir=/DAS/sybase/RSD_U1_ASA/mirror

Attention : les paramètres erssd_dbfile, erssd_translog, erssd_logmirror et erssd_backup_dir pour la base SQL Anywhere ne doivent pas être modifiés manuellement dans le fichier de configuration du serveur de réplication, ils doivent être modifiés avec la commande sysadmin erssd.

Replication Server prend en charge le déplacement souhaité avec les binaires SQL Anywhere avec un redémarrage automatique.

sysadmin erssd, dbfile_dir, <directory>
sysadmin erssd, dbfile_dir, <directory>
sysadmin erssd, logmirror_dir, <directory>

Démarrage du serveur de réplication

Le serveur de réplication est lancé avec le binaire repserver localisé dans le répertoire <path_distribution_rs>/REP-15_5/bin en indiquant les options nécessaires au démarrage du serveur en question.

Syntaxe du lancement du serveur de réplication :

repserver [-C config_file] [-S servername] [-D]
    [-E errorlog] [-i id_servername] [-I interfaces_file]
  • -S servername : nom du serveur de réplication
  • -E errorlog : localisation et nom du fichier de log du serveur de réplication
  • -i id_servername : nom du serveur primaire de réplication
  • -I interfaces_file : localisation et nom du fichier interfaces à utiliser

Pour le démarrage du serveur de réplication, il faut prendre garde aux variables d’environnement $SYBASE_REP, $SYBASE_OCS, $PATH et $LD_LIBRARY_PATH et vérifier que ces dernières sont bien positionnées par rapport à la localisation de la distribution de Replication Server.

Voici un exemple de fichier de démarrage du serveur de réplication IDB_U1_REP :

export SYBASE=/Software/sybase/repsrv-15.5
export SYBASE_REP=REP-15_5
export SYBASE_OCS=OCS-15_0

PATH=$SYBASE/$SYBASE_REP/bin:$SYBASE/$SYBASE_OCS/bin:$PATH
export PATH

LD_LIBRARY_PATH=$SYBASE/$SYBASE_REP/lib64:$SYBASE/$SYBASE_OCS/lib:
$SYBASE/$SYBASE_OCS/lib/lib3p64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

export SERVERNAME=IDB_U1_REP
$SYBASE/$SYBASE_REP/bin/repserver -C/Software/sybase/$SERVERNAME/cfg/$SERVERNAME.cfg \
        -S$SERVERNAME \
        -E/Software/sybase/$SERVERNAME/log/$SERVERNAME.log \
        -i$SERVERNAME \
        -I/Software/sybase/interfaces &

Dans le contexte de la base ERSSD SQL Anywhere, Replication Server ping au préalable la base SQL Anywhere pour vérifier si celle-ci est en ligne avec le binaire dbping, si ce n’est pas le cas, Replication Server prend en charge son démarrage avec dbspawn et dbsrv11 :

$DBA/IDB_U1_REP/log/IDB_U1_REP.log
I. 2010/06/14 18:21:39. Command failed: /Software/sybase/repsrv-15.5/REP-15_5/ASA11/bin/dbping -q 
-c"eng=RSD_U1_ASA;Language=us_english;CommLinks=tcpip(DOBROAD=NONE;HOST=localhost;PORT=30080)" 2> /dev/null. 
Operating System returned: Bad file number
I. 2010/06/14 18:21:39. Starting embedded RSSD: /Software/sybase/repsrv-15.5/REP-15_5/ASA11/bin/dbspawn -f 
-q /Software/sybase/repsrv-15.5/REP-15_5/ASA11/bin/dbsrv11 
-s none -ti 0 
-x "tcpip(PORT=30080;DOBROAD=NO;BLISTENER=NO)" -o /Software/sybase/dba/RSD_U1_ASA/log/RSD_U1_ASA.out 
/DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.db

Au démarrage de la base SQL Anywhere par Replication Server, les fichiers .db, .log et .mlg sont en lecture/écriture pour le compte sybase qui démarre Replication Server :

sybase@SRVUNXFR> ls -ll /DAS/sybase/RSD_U1_ASA

-rw-------   1 sybase   dba      4280320 Jun 14 18:21 RSD_U1_ASA.db
-rw-------   1 sybase   dba      3604480 Jun 20 18:28 RSD_U1_ASA.log

Arrêt du serveur de réplication

La commande shutdown dans le serveur de réplication arrête ce dernier :

isql -Usa -SIDB_U1_REP

shutdown
go

Dans le contexte ERSSD, Replication Server prend en charge l’arrêt de la base SQL Anywhere avant l’arrêt du moteur repserver:

$DBA/IDB_U1_REP/log/IDB_U1_REP.log
I. 2010/06/14 18:18:15. Stopping embedded RSSD: dbstop -q -y 
-c"uid=IDB_U1_REP_RSSD_prim;pwd=****;eng=RSD_U1_ASA;LINKS=tcpip(HOST=localhost;PORT=30080;DOBROAD=NONE)"

À l’arrêt de la base SQL Anywhere par Replication Server, les fichiers .log et .mlg deviennent accessibles uniquement en lecture au compte sybase, et le fichier .db passe en lecture seule pour tous les comptes Unix:

sybase@SRVUNXFR> ls -ll /DAS/sybase/RSD_U1_ASA

-r--r--r--   1 sybase   dba      4268032 Jun 20 20:37 RSD_U1_ASA.db
-r--------   1 sybase   dba      3604480 Jun 20 20:37 RSD_U1_ASA.log

Post installation (sécurité)

Compte primaire de la base ERSSD (IDB_U1_REP_RSSD_prim)

Le fichier de log de l’installation par fichier de ressource montre que le compte primaire de la RSSD rs.rs_rssd_prim_user acquiert le droit DBA dans une base ERSSD SQL Anywhere alors que dans le cas d’une base ASE RSSD, les droits donnés au compte rs.rs_rssd_prim_user sont bien plus restreints.

Si le paramètre rs.rs_rssd_prim_pass n’a pas été modifié pour ce compte dans le fichier de ressources et afin de ne pas laisser le mot de passe à sa valeur par défaut (<repservername>_RSSD_prim_ps), utiliser la commande alter user pour renforcer le mot de passe de ce compte :

alter user user set password {new_password | null }
IDB_U1_REP> alter user IDB_U1_REP_RSSD_prim set password 'your_password'

Protection du fichier de configuration du serveur de réplication

Le fichier de configuration du serveur de réplication rs.rs_rs_cfg_file (/Software/sybase/dba/IDB_U1_REP/cfg/IDB_U1_REP.cfg) contient les mots de passe des comptes RSSD_primary_user et RSSD_maint_user. Par sécurité, retirer les droits de lecture/écriture sur le fichier de configuration de Replication Server aux autres comptes Unix différents du compte sybase qui démarre le serveur de réplication.

sybase@SRVUNXFR> cd /Software/sybase/dba/IDB_U1_REP/cfg/IDB_U1_REP.cfg
sybase@SRVUNXFR> chmod 600 IDB_U1_REP.cfg
sybase@SRVUNXFR> ls -ll IDB_U1_REP.cfg
-rw-------   1 sybase   dba          781 Jun 14 18:54 IDB_U1_REP.cfg

Changement du mot de passe sa pour le serveur de réplication

Par défaut, le mot de passe sa est à null pour le serveur de réplication nouvellement créé IDB_U1_REP. Pour appliquer un mot de passe au login sa, la commande alter user de Replication Server est utilisée :

Syntaxe :

alter user user set password {new_password | null }
IDB_U1_REP > alter user sa set password 'your_password'

Création d’un compte DBA administrateur (sa) dans la base ERSSD

Lors de la création du serveur de réplication, le compte DBA administrateur automatiquement créé avec le binaire dbinit de Sybase SQL Anywhere est désactivé (revoke connect from DBA).

Pour des raisons d’administration de la base SQL Anywhere et éviter d’utiliser le compte rs.rs_rssd_prim_user pour entrer en administrateur dans la base SQL Anywhere, créer un compte administrateur selon les normes définies en passant par le compte rs.rs_rssd_prim_user

sybase@SRVUNXFR> isql -UIDB_U1_REP_RSSD_prim -P<your_password>

grant connect to sa identified by "<your_password>"
go
grant DBA to sa
go

Annexe 1 : Fichier de log de l’installation de IDB_U1_REP

rs_init/15.5/P/Solaris AMD64/Solaris 5.10/1/OPT64/Thu Feb 18 14:55:05 2010
Confidential property of Sybase, Inc.
Copyright 1992, 2010
Sybase, Inc.  All rights reserved.
Unpublished rights reserved under U.S. copyright laws.
                    
This software contains confidential and trade secre
information of Sybase,Inc.   
Use,  duplication or disclosure of the software and documentation by
the  U.S.  Government  is  subject  to  restrictions set
forth in a license agreement  between  the  Government  and  Sybase,  Inc.  or 
other written agreement  specifying  the  Government's rights to use the
software and any applicable FAR provisions, for example, FAR 52.227-19.
Sybase, Inc. One Sybase Drive, Dublin, CA 94568, USA

BEGIN ENVIRONMENT INFORMATION

USER ENVIRONMENT
----------------------------------------
user name:                     sybase
current directory:             /Software/sybase/repsrv-15.5/REP-15_5/install
character set:                 iso_1
language:                      us_english
Component Directory:           /Software/sybase/repsrv-15.5/REP-15_5
working release directory:     /Software/sybase/repsrv-15.5

END ENVIRONMENT INFORMATION
Directory service provider: 'InterfacesDriver'. 
Using resource file '/Software/sybase/repsrv-15.5/REP-15_5/init/rs/install_IDB_U1_REP.rs'
for product attributes.

Running task: initialize ERSSD.
Calling the shell with
'/Software/sybase/repsrv-15.5/REP-15_5/ASA11/bin/dbinit -c
   -b -k -o /Software/sybase/dba/RSD_U1_ASA/log/RSD_U1_ASA.out
   /DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.db '.
Initializing ERSSD
Done
Calling the shell with
'/Software/sybase/repsrv-15.5/REP-15_5/ASA11/bin/dblog -m
   /DAS/sybase/RSD_U1_ASA/mirror/RSD_U1_ASA.mlg -t
   /DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.log -o
   /Software/sybase/dba/RSD_U1_ASA/log/RSD_U1_ASA.out
   /DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.db '
Initializing ERSSD
Done
Calling the shell with
'/Software/sybase/repsrv-15.5/REP-15_5/ASA11/bin/dbspawn -f
   -q dbsrv11 -s none -ti 0 -x
   "tcpip(PORT=30080;DOBROAD=NO;BLISTENER=NO)" -o
   /Software/sybase/dba/RSD_U1_ASA/log/RSD_U1_ASA.out
   /DAS/sybase/RSD_U1_ASA/RSD_U1_ASA.db '.
Starting ERSSD
Done
Task succeeded: initialize ERSSD.
Running task: check the RSSD SQL Server.
Task succeeded: check the RSSD SQL Server.
Running task: configure the Embedded Replication Server System Database.
Sending the following SQL command to the server: 
'GRANT CONNECT TO IDB_U1_REP_RSSD_prim IDENTIFIED BY IDB_U1_REP_RSSD_prim_ps'.
Sending the following SQL command to the server: 
'GRANT MEMBERSHIP IN GROUP rs_systabgroup TO IDB_U1_REP_RSSD_prim'.
Sending the following SQL command to the server: 
'GRANT DBA TO IDB_U1_REP_RSSD_prim'.
Sending the following SQL command to the server: 
'REVOKE CONNECT FROM DBA'.
Sending the following SQL command to the server: 
'GRANT CONNECT TO IDB_U1_REP_RSSD_maint IDENTIFIED BY IDB_U1_REP_RSSD_maint_ps'.
Sending the following SQL command to the server: 
'GRANT MEMBERSHIP IN GROUP rs_systabgroup TO IDB_U1_REP_RSSD_maint'.
Sending the following SQL command to the server: 'GRANT
                    CONNECT TO dbo IDENTIFIED BY dbo'.
Loading script 'rs_init_asa.sql' into database 'RSD_U1_ASA'.
Done
Loaded script 'rs_init_asa.sql' successfully.
Loading script 'rs_install_systables_asa.sql' into database 'RSD_U1_ASA'.
Sending the following SQL command to the server: 
'create table #rs_platform(bits int)'.
Sending the following SQL command to the server: 
'insert into #rs_platform(bits) values(64)'.
Done
Sending the following SQL command to the server:
'sp_serverinfo server_csname'.
Sending the following SQL command to the server: 
'set char_convert off'.
Done
Done
Sending the following SQL command to the server: 
'drop table #rs_platform'.
Loaded script 'rs_install_systables_asa.sql' successfully.
Loading script 'rsprocs_asa.sql' into database 'RSD_U1_ASA'.
Done
Loaded script 'rsprocs_asa.sql' successfully.
Sending the following SQL command to the server: 
'GRANT CONNECT TO dbo'.
Task succeeded: configure the Embedded Replication Server System Database.
Running task: create the Replication Server configuration file.
Task succeeded: create the Replication Server configuration file.
Running task: create the Replication Server runserver file.
Task succeeded: create the Replication Server runserver file.
Running task: start the Replication Server.
Calling the shell with
   '/Software/sybase/repsrv-15.5/REP-15_5/install/RUN_IDB_U1_REP
    > /Software/sybase/repsrv-15.5/REP-15_5/init/logs/tmp 2>&1'.
waiting for server 'IDB_U1_REP' to boot...
Task succeeded: start the Replication Server.
Running task: configure the Replication Server.
Adding partition 'PART01'.
Sending the following SQL command to the server: 
'add partition "PART01" on
'/DAS/sybase/IDB_U1_REP/stabledevices/PART01.dat' 
with size 1000 starting at 0'.
Successfully added partition 'PART01'.
Connecting to Replication Server and defining users for LTM/Replication Agent and other Replication Servers.
Sending the following SQL command to the server: 
'create user "IDB_U1_REP_rsi" set password "IDB_U1_REP_rsi_ps"'.
Sending the following SQL command to the server: 
'grant CONNECT SOURCE to "IDB_U1_REP_rsi"'.
Sending the following SQL command to the server: 
'create user "IDB_U1_REP_ra" set password "IDB_U1_REP_ra_ps"'.
Sending the following SQL command to the server: 
'grant CONNECT SOURCE to "IDB_U1_REP_ra"'.
Sending the following SQL command to the server: 
'create user "IDB_U1_REP_id_user" set password "IDB_U1_REP_id_passwd"'.
Successfully defined users in Replication Server.
Task succeeded: configure the Replication Server.
Running task: load heterogeneous scripts to ERSSD.
Sending the following SQL command to the server: 
'GRANT CONNECT TO dbo IDENTIFIED BY dbo'.
Done
Sending the following SQL command to the server:
'sp_serverinfo server_csname'.
Sending the following SQL command to the server: 
'set char_convert off'.
Done
Done
Loaded script 'hds_udb_udds.sql' successfully.
Done
Loaded script 'hds_db2_udds.sql' successfully.
Done
Loaded script 'hds_oracle_udds.sql' successfully.
Done
Loaded script 'hds_msss_udds.sql' successfully.
Done
Loaded script 'hds_udb_funcstrings.sql' successfully.
Done
Loaded script 'hds_db2_funcstrings.sql' successfully.
Done
Loaded script 'hds_oracle_funcstrings.sql' successfully.
Done
Loaded script 'hds_msss_funcstrings.sql' successfully.
Done
Loaded script 'hds_iq_funcstrings.sql' successfully.
Done
Loaded script 'hds_udb_errors.sql' successfully.
Done
Loaded script 'hds_db2_errors.sql' successfully.
Done
Loaded script 'hds_oracle_errors.sql' successfully.
Done
Loaded script 'hds_msss_errors.sql' successfully.
Done
Loaded script 'hds_iq_errors.sql' successfully.
Done
Loaded script 'rs_ase_to_db2.sql' successfully.
Done
Loaded script 'rs_ase_to_udb.sql' successfully.
Done
Loaded script 'rs_ase_to_oracle.sql' successfully.
Done
Loaded script 'rs_ase_to_msss.sql' successfully.
Done
Loaded script 'rs_ase_to_sqlany.sql' successfully.
Done
Loaded script 'rs_ase_to_ase.sql' successfully.
Done
Loaded script 'rs_ase_to_iq.sql' successfully.
Done
Loaded script 'rs_db2_to_msss.sql' successfully.
Done
Loaded script 'rs_db2_to_oracle.sql' successfully.
Done
Loaded script 'rs_db2_to_udb.sql' successfully.
Done
Loaded script 'rs_db2_to_sqlany.sql' successfully.
Done
Loaded script 'rs_db2_to_ase.sql' successfully.
Done
Loaded script 'rs_oracle_to_db2.sql' successfully.
Done
Loaded script 'rs_oracle_to_udb.sql' successfully.
Done
Loaded script 'rs_oracle_to_msss.sql' successfully.
Done
Loaded script 'rs_oracle_to_sqlany.sql' successfully.
Done
Loaded script 'rs_oracle_to_ase.sql' successfully.
Done
Loaded script 'rs_msss_to_db2.sql' successfully.
Done
Loaded script 'rs_msss_to_oracle.sql' successfully.
Done
Loaded script 'rs_msss_to_udb.sql' successfully.
Done
Loaded script 'rs_msss_to_sqlany.sql' successfully.
Done
Loaded script 'rs_msss_to_ase.sql' successfully.
Done
Loaded script 'rs_udb_to_sqlany.sql' successfully.
Done
Loaded script 'rs_udb_to_db2.sql' successfully.
Done
Loaded script 'rs_udb_to_msss.sql' successfully.
Done
Loaded script 'rs_udb_to_oracle.sql' successfully.
Done
Loaded script 'rs_udb_to_ase.sql' successfully.
Done
Loaded script 'rs_sqlany_to_oracle.sql' successfully.
Done
Loaded script 'rs_sqlany_to_udb.sql' successfully.
Done
Loaded script 'rs_sqlany_to_msss.sql' successfully.
Done
Loaded script 'rs_sqlany_to_db2.sql' successfully.
Done
Loaded script 'rs_sqlany_to_ase.sql' successfully.
Done
Loaded script 'rs_db2_to_db2.sql' successfully.
Done
Loaded script 'rs_oracle_to_oracle.sql' successfully.
Done
Loaded script 'rs_udb_to_udb.sql' successfully.
Done
Loaded script 'rs_msss_to_msss.sql' successfully.
Done
Loaded script 'rs_sqlany_to_sqlany.sql' successfully.
Done
Loaded script 'rs_ase_to_oracle_ecda.sql' successfully.
Done
Loaded script 'rs_db2_to_oracle_ecda.sql' successfully.
Done
Loaded script 'rs_msss_to_oracle_ecda.sql' successfully.
Done
Loaded script 'rs_oracle_to_oracle_ecda.sql' successfully.
Done
Loaded script 'rs_sqlany_to_oracle_ecda.sql' successfully.
Done
Loaded script 'rs_udb_to_oracle_ecda.sql' successfully.
Done
Loaded script 'rs_ase_to_oracle_eco.sql' successfully.
Done
Loaded script 'rs_db2_to_oracle_eco.sql' successfully.
Done
Loaded script 'rs_msss_to_oracle_eco.sql' successfully.
Done
Loaded script 'rs_oracle_to_oracle_eco.sql' successfully.
Done
Loaded script 'rs_sqlany_to_oracle_eco.sql' successfully.
Done
Loaded script 'rs_udb_to_oracle_eco.sql' successfully.
Sending the following SQL command to the server: 
'GRANT CONNECT TO dbo'.
Task succeeded: load heterogeneous scripts to ERSSD.
Configuration completed successfully.
Exiting.
The log file for this session is 'install_IDB_U1_REP.log'.
Log close.