PhixFlow stores configuration, analysis and task data in any of Oracle, SQL Server or MariaDB (a dialect of MySQL). For version compatability, please refer to Compatibility Guide and Upgrade Planning.
There are many issues to consider when installing a database, several of which will be concerned with your company’s own internal procedures, backup policies etc. The notes below describe just the core requirements which will enable the installation of PhixFlow to be completed. However, the DBA who carries out the installation should ensure that the database is configured to be performant for the volumes of data that PhixFlow is expected to process.
In normal operation, the database will require the usual ongoing management e.g. monitoring database files to ensure that the database does not run out of space. Over time, the data held in the PhixFlow database will grow naturally as more Controls are configured. However, model designers should ensure that archive policies are configured within PhixFlow to free up space when data is no longer needed.
Oracle
When using Oracle, the following initial database configuration is recommended. However, some of the options below may need to change over time as the work carried out by PhixFlow increases.
General
Option | Setting |
Oracle Edition | PhixFlow runs on all Oracle Database editions. PhixFlow partitioned streams (optional) require the Enterprise Edition Partitioning option. |
Version | See Compatibility Guide and Upgrade Planning. Patches should be applied as advised by Oracle. |
NLS_CHARACTERSET | AL32UTF8 |
NLS_LANG | american_america. AL32UTF8 (Not used by PhixFlow. For support purposes only) |
NLS_SORT | BINARY |
NLS_COMP | BINARY |
NLS_NCHAR_CHARACTERSET | NCHARS are not used by PhixFlow however set to AL32UTF8 |
sga_max_size | At least 2 GB For larger systems, this should be provided by the sizing process. |
SID | phixflow |
Connection Type | Dedicated |
Max Number of Connections | Variable, depending on system size and workload. Typically >100. For larger systems, this should be provided by the sizing process. |
Storage Type | Any, subject to throughput requirements. |
Storage / Tablespaces
Tablespace Name | Size | I/O Rate (Mb/s sustained) |
(Redo Logs) | 3 x 0.5Gb | 10Mb/s |
CONFIG_DATA_01 | 2 GB | 0.5Mb/s |
ANALYSIS_DATA_01 | 100 GB | 10Mb/s |
UNDOTBS1 (UNDO) | 10GB | 10Mb/s |
- The storage area sizes and I/O Rates are for a typical small server using conventional hard disk drives, and should be revised as part of the sizing process. Rates are quoted in Megabytes
- The I/O Rates are for sustained data transfers spanning many tens of minutes. Peak transfer rates, assuming transfers to/from fast memory buffers, may be much higher, but are not significant unless solid-state disks are used.
Datapump
To support maintenance backups, the following datapump directory is required configured as:
CREATE DIRECTORY dpump_phixflow AS ‘/u02/phixflow/dbexport’;
Database User
The following Oracle user should be set up:
User | SQL Script |
phixflow | CREATE USER phixflow PROFILE DEFAULT IDENTIFIED BY <password> DEFAULT TABLESPACE CONFIG_DATA_01 QUOTA UNLIMITED ON CONFIG_DATA_01 QUOTA UNLIMITED ON ANALYSIS_DATA_01 ACCOUNT UNLOCK; GRANT CREATE SESSION TO phixflow; GRANT CREATE TABLE TO phixflow; GRANT CREATE VIEW TO phixflow; GRANT READ,WRITE ON DIRECTORY phixflow_dpump TO phixflow; |
Microsoft SQL Server
When using SQL Server, the following initial database configuration is recommended. However, some of the options below may need to change over time as the work carried out by PhixFlow increases.
Server
Option | Setting |
SQL Server Edition | Standard or Enterprise |
Version | |
Service Name | (Please provide to PhixFlow installation consultant) |
Collation Character set | Latin1_General_CI_AS |
Max Server Memory | At least 2 GB |
Server Authentication | SQL Server and Windows Authentication Mode |
Logins
Create a new login as follows:
Parameter | Setting |
Login Name | phixflow |
Authentication | SQL Server |
Password | Please provide to the PhixFlow installation consultant |
Enforce password policy | No |
Default database | Set to phixflow once the phixflow database has been created (below) |
Default language | As appropriate |
Database
Create a new database as follows:
Parameter | Setting |
Name | phixflow |
Owner | phixflow |
Collation | Latin1_General_CI_AS |
READ_COMMITTED_SNAPSHOT | ON |
Filegroups
Name | Default |
PRIMARY | Yes |
ANALYSIS_DATA |
Database Files
Logical Name | Setting |
phixflow | Type: Rows Data Filegroup: PRIMARY Initial Size: 2000 MB Autogrowth: 10% Unrestricted (or as per management policy) Path: (As per management policy) |
phixflow_data_01 | Type: Rows Data Filegroup: ANALYSIS_DATA Initial Size: 100,000 MB Autogrowth: 10% Unrestricted (or as per management policy) Path: (As per management policy) |
phixflow_log | Type: Log Initial Size: 1000 MB Autogrowth: 10% Unrestricted (or as per management policy) Path: (As per management policy) |
MariaDB
MariaDB is a dialect of MySQL.
When using MariaDB, the following initial database configuration is recommended. However, some of the options below may need to change over time as the work carried out by PhixFlow increases.
Installation
Option | Setting |
Version | |
Max Server Memory | At least 2 GB |
The following configuration parameters must be set in my.cnf | |
datadir | Ensure that the data dir being used has sufficient space for the initial period of PhixFlow operation. This is in the [mysqld] section of the my.cnf file. |
binlog_format | mixed This must be added to the [mysqld] section of the my.cnf file. |
wait_timeout | 28800 (this is the default, but some installation processes set this to a much lower value) This must be in the [mysqld] section of the my.cnf file. |
The following configuration parameters can optionally be set in my.cnf | |
log_bin_trust_function_creators | 1 This must be added to the [mysqld] section of the my.cnf file. For details on why this setting is recommended - and the alternatives if you do not want to set in this my.cnf, see Running non-deterministic functions |
Example
If you add all parameters above to the my.cnf, including the optional parameters, then the end of the [mysqld] section of you my.cnf file should look something like this:
[mysqld] ... datadir = /var/lib/mysql ... wait_timeout = 28800 ... binlog_format = mixed log_bin_trust_function_creators = 1
Database
The following are parameters of the database required by a PhixFlow installation.
All of these parameters are reflected in the example MariaDB database creation command in Configure the Database.
You will need a database, and a login with all privileges on that database. The database must be created with the following options:
Option | Setting |
---|---|
character_set_server | utf8 |
collation_server | utf8_bin |
Running non-deterministic functions
PhixFlow's migration scripts sometimes require the use of non-deterministic functions. To run, these require either a setting (log_bin_trust_function_creators
) to be updated, or to run with sufficient privileges.
Permanent setting change to allow non-deterministic functions
You can permanently allow non-deterministic functions to run in migration scripts by updating log_bin_trust_function_creators
in the my.cnf
file. This is convenient, because you don't have to remember to make any changes to your session when migrating. However, if you don't want to make this permanent change, see the following section.
Setting log_bin_trust_function_creators
in the my.cnf
file is an optional parameter recommended in MariaDB installation.
Session change to allow non-deterministic functions
You can either do this in a session, or to make the setting update permanent (that is, it will persist after a database restart) add it to the my.cnf file.
Notes
Windows / Antivirus
MariaDB is not compatible with on-access anti-virus software so this must be disabled for the MariaDB data folder(s).