2 Installation of TimesTen Classic on Linux or UNIX
This chapter is for TimesTen Classic only. It discusses how to create and manage installations and instances for TimesTen Classic on Linux and UNIX hosts.
Before installing TimesTen Classic, ensure you have reviewed the terminology and completed the prerequisites. See Overview of the Installation Process in TimesTen Classic for more information.
For information on TimesTen Scaleout, see "Overview of TimesTen Scaleout" in the Oracle TimesTen In-Memory Database Scaleout User's Guide.
This chapter focuses primarily on full installations and full instances. See "Client-only Installations and Instances" for information on client-only installations and instances.
The examples in this chapter are performed on Linux, but are applicable to the platforms that support full installations and full instances.
Topics include:
There is an example at the end of the chapter that demonstrates the steps for creating an installation, creating an instance, modifying an instance, destroying an instance, and deleting the installation. This example ties all the concepts of the installation process together. See:
"Complete example for installing and uninstalling TimesTen Classic" for details.
There is also information on installing Oracle Clusterware. See "Installing Oracle Clusterware for use with TimesTen" for information.
Creating an installation on Linux/UNIX
The first step in creating the installation is to decide the operating system user who will install TimesTen Classic. This user installs TimesTen Classic by unzipping the distribution. See "Distribution media and the distribution" for information. This user is named the instance administrator. See "Instance administrator" for details.
Note:
The operating system user that unzips the distribution (and thereby installs TimesTen Classic) is named the instance administrator. This instance administrator is the only user that can create instances. See "TimesTen instances" and "Creating an instance on Linux/UNIX: Basics" for details.
There is one distribution file:
-
On Linux 64-bit, there is not a separate client only installation file. For example, for release
22.1.1.10.0
, the distribution file name istimesten2211100.server.linux8664.zip.
Unzip this file to install either the full product or the client. When you create the instance, there is a qualifier that you specify to create a client-only instance. See "Creating an instance on Linux/UNIX: Basics" for details. -
On Linux 32-bit, there is only a client installation file.
The instance administrator can create an installation that is accessible by the instance administrator's primary group, by the instance administrator's secondary group, or by only the instance administrator. In addition, the instance administrator can and should verify the installation is successful. These sections cover these topics:
Create an installation accessible by the instance administrator's primary group
To create the installation that is accessible by the instance administrator's primary group:
- Place the appropriate distribution file in some desired, accessible location.
- Create the desired directory for the installation.
- Change directories to the desired directory for the installation.
- Extract the distribution into that directory.
In the following example on Linux, ttuser1
, with primary group timesten
, creates a full installation into the directory fullinstall
(a subdirectory of the current directory) from a distribution file in /swdir/TimesTen/ttinstallers
. This installation is accessible to members of timesten
.
% mkdir fullinstall % cd fullinstall % unzip /swdir/TimesTen/ttinstallers/timesten2211100.server.linux8664.zip [...UNZIP OUTPUT...]
The top level directory of the installed files is of the form tt22.1.1.10.0
.
For example, this directory is created under fullinstall
:
dr-xr-x--- 19 ttuser1 timesten 4096 Mar 2 22:07 tt22.1.1.10.0
The tt22.1.1.10.0
directory includes such files as:
dr-xr-x--- 3 ttuser1 timesten 4096 Jun 15 22:07 3rdparty dr-xr-x--- 2 ttuser1 timesten 4096 Jun 15 22:07 bin dr-xr-x--- 3 ttuser1 timesten 4096 Jun 15 22:07 include dr-xr-x--- 2 ttuser1 timesten 4096 Jun 15 22:07 info dr-xr-x--- 2 ttuser1 timesten 4096 Jun 15 23:33 kubernetes dr-xr-x--- 3 ttuser1 timesten 4096 Jun 15 22:07 lib dr-xr-x--- 7 ttuser1 timesten 4096 Jun 15 22:07 plsql dr-xr-x--- 3 ttuser1 timesten 4096 Jun 15 22:07 ttoracle_home
A timesten
member can access the instance. A user who is not a member of timesten
does not have access to this instance or any instance created from the installation.
Create an installation accessible by the instance administrator's secondary group
To create an installation that is accessible by a secondary group of the instance administrator:
- Place the appropriate distribution file in some desired, accessible location.
- Create the desired directory for the installation.
- Change directories to the desired directory for the installation.
- Extract the distribution into that directory.
- Use the
chgrp
Linux command to change ownership of the installation to the desired group.
In the following example, ttuser2
, with primary group users
and secondary group timesten
, creates a full installation into the directory fullinstall_secgrp
from a distribution file in /swdir/TimesTen/ttinstallers
. After ttuser2
executes the chgrp
command, this installation is accessible to members of timesten
.
% mkdir fullinstall_secgrp % cd fullinstall_secgrp % unzip /swdir/TimesTen/ttinstallers/timesten2211100.server.linux8664.zip [...UNZIP OUTPUT...]
The top level directory of the installed files is of the form tt22.1.1.10.0
.
For example, under the installation directory, before the chgrp
command:
dr-xr-x--- 19 ttuser2 users 4096 Mar 2 22:07 tt22.1.1.10.0
The tt22.1.1.10.0
directory, shown before the chgrp
command, includes such files as:
dr-xr-x--- 3 ttuser2 users 4096 Jun 15 22:07 3rdparty dr-xr-x--- 2 ttuser2 users 4096 Jun 15 22:07 bin dr-xr-x--- 3 ttuser2 users 4096 Jun 15 22:07 include dr-xr-x--- 2 ttuser2 users 4096 Jun 15 22:07 info dr-xr-x--- 2 ttuser2 users 4096 Jun 15 23:33 kubernetes dr-xr-x--- 3 ttuser2 users 4096 Jun 15 22:07 lib dr-xr-x--- 7 ttuser2 users 4096 Jun 15 22:07 plsql dr-xr-x--- 3 ttuser2 users 4096 Jun 15 22:07 ttoracle_home
User ttuser2
executes chgrp
from the fullinstall_secgrp
installation directory:
% chgrp -R timesten .
Under the installation directory, after the chgrp
command:
dr-xr-x--- 19 ttuser2 timesten 4096 Mar 2 22:07 tt22.1.1.10.0
The tt22.1.1.10.0
directory, shown after the chgrp
command, includes such files as:
dr-xr-x--- 3 ttuser2 timesten 4096 Jun 15 22:07 3rdparty dr-xr-x--- 2 ttuser2 timesten 4096 Jun 15 22:07 bin dr-xr-x--- 3 ttuser2 timesten 4096 Jun 15 22:07 include dr-xr-x--- 2 ttuser2 timesten 4096 Jun 15 22:07 info dr-xr-x--- 2 ttuser2 timesten 4096 Jun 15 23:33 kubernetes dr-xr-x--- 3 ttuser2 timesten 4096 Jun 15 22:07 lib dr-xr-x--- 7 ttuser2 timesten 4096 Jun 15 22:07 plsql dr-xr-x--- 3 ttuser2 timesten 4096 Jun 15 22:07 ttoracle_home
After the chgrp
command, a timesten
member can access the instance. A user who is not a member of timesten
does not have access to this installation or any instance created from the installation.
Create an installation accessible by only the instance administrator
An installation can be created that is accessible by only the instance administrator, although this is not typical. To accomplish this:
- Place the appropriate distribution file in the desired directory.
- Create the desired directory for the installation.
- Change directories to the desired directory for the installation.
- Extract the distribution into that directory.
- Change the permissions on the installation directory tree.
In the following example, ttuser1
creates a full installation into the directory fullinstall_installeronly
from a distribution file in /swdir/TimesTen/ttinstallers
. This installation is accessible to ttuser1
only.
% mkdir fullinstall_installeronly % cd fullinstall_installeronly % unzip /swdir/TimesTen/ttinstallers/timesten2211100.server.linux8664.zip [...UNZIP OUTPUT...] % chmod -R go-rwx tt22.1.1.10.0
The top level directory of the installed files is of the form tt22.1.1.10.0
.
For example, under the installation directory:
dr-x------ 19 ttuser1 timesten 4096 Jun 2 22:07 tt22.1.1.10.0
Contents of tt22.1.1.10.0
includes such files as:
dr-x------ 5 ttuser1 timesten 4096 Jun 2 22:07 3rdparty dr-x------ 2 ttuser1 timesten 4096 Jun 2 22:07 bin dr-x------ 3 ttuser1 timesten 4096 Jun 2 22:07 include dr-x------ 2 ttuser1 timesten 4096 Jun 2 22:07 info dr-x------ 2 ttuser1 timesten 4096 Jun 2 23:33 kubernetes dr-x------ 2 ttuser1 timesten 4096 Mar 2 22:07 lib dr-x------ 8 ttuser1 timesten 4096 Mar 2 22:07 plsql dr-x------ 3 ttuser1 timesten 4096 Mar 2 22:07 ttoracle_home
Only ttuser1
has access to this instance.
Verify an installation on Linux/UNIX
To verify the installation, run the ttInstallationCheck
utility. In addition, you can review the installation directory and subdirectories.
The ttInstallationCheck utility
The ttInstallationCheck
utility, located in the installation_dir
/tt22.1.1.10.0/bin
directory, verifies the success or failure of the installation. This utility generates an error if the checksum value for the installation differs from the original checksum value. Checksum values are different if there are any of these changes to the installation directory or files:
-
Contents of a file
-
Name of a file
-
Addition of a file to a directory
-
Removal of a file from a directory
-
Changes to the permissions of a file or directory
In this example, the installation is verified:
%installation_dir
/tt22.1.1.10.0/bin
/ttInstallationCheck This installation has been verified.
In this example, permissions on a file were changed, and ttInstallationCheck
generates an error:
%installation_dir
/tt22.1.1.10.0/bin
/ttInstallationCheck Cannot validate the installation in /installation_dir
/tt22.1.1.10.0.
See "ttInstallationCheck" in the Oracle TimesTen In-Memory Database
Reference for detailed information on the ttInstallationCheck
utility.
The installation directory and subdirectories
A TimesTen full installation includes these subdirectories located under the top-level installation_dir
/tt22.1.1.10.0
directory (Not all of the subdirectories are included in this list).
-
3rdparty
: Includes resources for:-
Apache ZooKeeper for TimesTen Scaleout (Unused by TimesTen Classic)
-
Java Message Service (JMS)
-
-
bin
: TimesTen utilities and executables -
grid
: Files and resources for TimesTen Scaleout (Unused by TimesTen Classic) -
include
: TimesTen include files, among themtimesten.h
(for TimesTen ODBC features) andtt_errCode.h
(for information about TimesTen error codes) -
kubernetes
: The directory containing theoperator.zip
file needed for the TimesTen Kubernetes Operator. See the Oracle TimesTen In-Memory Database Kubernetes Operator User's Guide for information on the TimesTen Kubernetes Operator. -
lib
: TimesTen libraries -
plsql
: Files and resources for TimesTen PL/SQL -
ttoracle_home
: Oracle Database Instant Client files and resources, for OCI, Pro*C/C++, and ODP.NET
About creating an instance on Linux/UNIX
-
A TimesTen full instance refers to a running TimesTen daemon (
timestend
) and its children and associated processes, along with the configuration files and other supporting files required for its operation. A full instance can manage one or more databases. -
A TimesTen client instance refers to a set of configuration files and other supporting files required for the use of TimesTen clients. A client instance cannot have a database itself.
The information in the following section is relevant for TimesTen full instances. See "Creating a TimesTen client instance" and "Client-only Installations and Instances" for information on creating TimesTen client instances.
In TimesTen Classic, when you create a TimesTen full instance on Linux/UNIX, you can choose how you want the TimesTen daemon to be managed at system startup.
- If you want the TimesTen daemon automatically managed, choose systemd. The instance administrator does not control the TimesTen daemon.
- If you want the TimesTen daemon to be started at system startup and stopped at system shutdown, then you can choose either the System V init mechanism or systemd. You cannot choose both. Note that if you choose systemd, the TimesTen daemon will also be automatically managed by systemd and the instance administrator will have no control over the TimesTen daemon. If you choose the System V init mechanism, the instance administrator controls the TimesTen daemon at all times, except at system startup and system shutdown.
- If you want the instance administrator to control the TimesTen daemon, do not use either the System V init mechanism or systemd to control the TimesTen daemon. See "Creating an instance on Linux/UNIX: Basics" for details.
The way in which you create a TimesTen full instance depends on what choice you make.
On a UNIX system or on a Linux system that does not support systemd, see "Creating an instance on Linux/UNIX: Basics" for information.
- System V init mechanism: See "Creating an instance on Linux/UNIX: Basics" for information.
-
systemd: See "Using systemd to Manage a TimesTen Service" for information.
- Neither System V init mechanism nor systemd: See "Creating an instance on Linux/UNIX: Basics" for information.
Creating an instance on Linux/UNIX: Basics
The information in the following section is relevant for TimesTen full instances. See "Creating a TimesTen client instance" and "Client-only Installations and Instances" for information on creating TimesTen client instances.
-
A Linux/UNIX system that does not support systemd
- A Linux system that supports both the System V init mechanism and systemd, but you have chosen either the SystemV init mechanism or have chosen to have the instance administrator control the TimesTen daemon at all times.
See "Using systemd to Manage a TimesTen Service" for information on creating a full instance when your choice is systemd.
-
Use the
ttInstanceCreate
utility located in theinstallation_dir
/tt22.1.1.10.0/bin
directory to create the instance. You can run thettInstanceCreate
utility on the command line, in a file, or interactively. -
Configure Linux kernel parameters.
-
Optionally, run the
timesten_home/bin/setuproot
script with the-install
option to have the TimeTen daemon automatically started at system startup and automatically stopped at system shutdown. This script copies the System V init scripts to the proper location (/etc/init.d
). If you want the instance administrator to control the TimesTen daemon at system startup and at system shutdown, do not run this script.
Note:
-
Only the user who unpacked the distribution (the creator of the installation) can create an instance from the installation.
-
This user must be a member of the TimesTen users group.
-
This user creates the instance by running the
ttInstanceCreate
utility. -
After creating the instance, this user becomes the instance administrator of the instance.
-
This user is the only user that can be the instance administrator of this instance and all other instances associated with the installation.
Perform the procedures in these sections:
Create a TimesTen full instance on Linux/UNIX
This section discusses the options you have to create a TimesTen full instance.
Create a full instance interactively
If you are using systemd as a service, see "Using systemd to Manage a TimesTen Service" for details.
This example uses the ttInstanceCreate
utility to create a full instance. No options are specified on the command line.
Navigate to the installation_dir
/tt22.1.1.10.0/bin
area of the installation directory and then run the ttInstanceCreate
utility located in that directory. The ttInstanceCreate
utility must be run from the installation directory. User input is shown in bold.
% installation_dir/tt22.1.1.10.0/bin/ttInstanceCreate
NOTE: Each TimesTen instance is identified by a unique name.
The instance name must be a non-null alphanumeric string, not longer
than 255 characters.
Please choose an instance name for this installation? [ tt221 ] myinstance
Instance name will be 'myinstance'.
Is this correct? [ yes ]
Where would you like to install the myinstance instance of TimesTen? [ /home/ttuser ] /scratch/ttuser
Creating instance in /scratch/ttuser/myinstance ...
NOTE: If you are configuring TimesTen for use with Oracle Clusterware, the
daemon port number must be the same across all TimesTen installations
managed within the same Oracle Clusterware cluster.
NOTE: All installations that replicate to each other must use the same daemon
port number that is set at installation time. The daemon port number can
be verified by running 'ttVersion'.
The default port number is 6624.
Do you want to use the default port number for the TimesTen daemon? [ yes ]
The daemon will run on the default port number (6624).
In order to use the cache features in any TimesTen databases
created within this instance, you must set a value for the TNS_ADMIN
environment variable. It can be left blank, and a value can be supplied later
using <install_dir>/bin/ttInstanceModify.
Please enter a value for TNS_ADMIN (s=skip)? [ ] s
What is the TCP/IP port number that you want the TimesTen Server to listen on? [ 6625 ]
Would you like to use TimesTen Replication with Oracle Clusterware? [ no ]
Would you like to use systemd to manage TimesTen? [ no ]
NOTE: The TimesTen daemon startup/shutdown scripts have not been installed.
The startup script is located here :
'/scratch/ttuser/myinstance/startup/tt_myinstance'
Run the 'setuproot' script :
/scratch/ttuser/myinstance/bin/setuproot -install
This will move the TimesTen startup script into its appropriate location.
The 22.1 Release Notes are located here :
'installation_dir/tt22.1.1.1.0/README.html'
Starting the daemon ...
TimesTen Daemon (PID: 9020, port: 6624) startup OK.
Instance created successfully.
You have successfully created the TimesTen full instance. Proceed to "Review the instance home directory and subdirectories" for next steps.
Create an instance by specifying options on the command line
This example runs the ttInstanceCreate
utility and specifies the name, the location, and the daemon port number on the command line. (The name of the directory specified in the -location
option must exist prior to running the ttInstanceCreate
utility.) See "ttInstanceCreate" in the Oracle TimesTen In-Memory Database
Reference for the supported options.
%installation_dir
/tt22.1.1.10.0
/bin/ttInstanceCreate -name fullinstance1 -location /scratch/ttuser/fullinstance1 -daemonport 6824 Creating instance in /scratch/ttuser/fullinstance1 ... INFO: Mapping files from the installation to /scratch/ttuser/fullinstance1/install NOTE: The TimesTen daemon startup/shutdown scripts have not been installed. The startup script is located here : '/scratch/ttuser/fullinstance1/startup/tt_fullinstance1 Run the 'setuproot' script : /scratch/ttuser/fullinstance1/bin/setuproot -install This will move the TimesTen startup script into its appropriate location. The 22.1 Release Notes are located here : '/installation_dir
/tt22.1.1.10.0/README.html'
You have successfully created the TimesTen full instance. Proceed to "Review the instance home directory and subdirectories" for next steps.
Create an instance interactively with the -record option
When creating an instance interactively, you can use the -record
option to record the interactive prompts and responses into a batch file, which you can then use as a template for creating additional instances in batch mode. See "Create an instance from information provided in a batch file" for details.
This example illustrates how to use the ttInstanceCreate
utility with the -record
option.
%installation_dir
/tt22.1.1.10.0/bin
/ttInstanceCreate -record /swdir/TimesTen/ttinstances/instancecreatebatch
The batch file that is created, instancecreatebatch
, contains this input for ttInstanceCreate
:
Please choose an instance name for this installation:ttuser1instanceint Is this correct:y Where would you like to install the ttuser1instanceint instance of TimesTen:/swdir/TimesTen/ttinstances Please enter a unique port number for the TimesTen daemon (<CR>=list):27100 Please enter a value for TNS_ADMIN (s=skip):s What is the TCP/IP port number that you want the TimesTen Server to listen on:27101 Would you like to use TimesTen Replication with Oracle Clusterware:n
Create an instance from information provided in a batch file
You can use the ttInstanceCreate
-batch
option to use a batch file with instructions for creation of an instance. You created such a file by running ttInstanceCreate
with the -record
option. See "Create an instance interactively with the -record option" for information.
This example first uses a sample batch file that was created with the -record
option. It then uses this sample batch file (instancecreatebatch
) to create the instance.
Please choose an instance name for this installation:ttuser1instancebat Is this correct:y Where would you like to install the ttuser1instancebat instance of TimesTen:/swdir/TimesTen/ttinstances Please enter a unique port number for the TimesTen daemon (<CR>=list):29100 Please enter a value for TNS_ADMIN (s=skip):s What is the TCP/IP port number that you want the TimesTen Server to listen on:29101 Would you like to use TimesTen Replication with Oracle Clusterware:n
Then to create the instance:
%installation_dir
/tt22.1.1.10.0/
bin/ttInstanceCreate -batch /swdir/TimesTen/ttinstances/instancecreatebatch
This results in the following output from ttInstanceCreate
:
NOTE: Each TimesTen instance is identified by a unique name. The instance name must be a non-null alphanumeric string, not longer than 255 characters. Instance name will be 'ttuser1instancebat'. Creating instance in /swdir/TimesTen/ttinstances/ttuser1instancebat ... TCP port 6624 is in use! NOTE: If you are configuring TimesTen for use with Oracle Clusterware, the daemon port number must be the same across all TimesTen installations managed within the same Oracle Clusterware cluster. ** The default daemon port (6624) is already in use or within a range of 8 ports of an existing TimesTen instance. You must assign a unique daemon port number for this instance. This installer will not allow you to assign another instance a port number within a range of 8 ports of the port you assign below. NOTE: All installations that replicate to each other must use the same daemon port number that is set at installation time. The daemon port number can be verified by running 'ttVersion'. INFO: installation group ownership (ttVersion) is 'timesten' In order to use the cache features in any TimesTen databases created within this instance, you must set a value for the TNS_ADMIN environment variable. It can be left blank, and a value can be supplied later using <install_dir>/bin/ttInstanceModify. NOTE: The TimesTen daemon startup/shutdown scripts have not been installed. The startup script is located here : '/swdir/TimesTen/ttinstances/ttuser1instancebat/startup/tt_ttuser1instancebat' Run the 'setuproot' script : /swdir/TimesTen/ttinstances/ttuser1instancebat/bin/setuproot -install This will move the TimesTen startup script into its appropriate location. The 22.1 Release Notes are located here : '/swdir/TimesTen/ttinstallations/fullinstall/tt22.1.1.10.0/README.html' Starting the daemon ... TimesTen Daemon (PID: 7725, port: 29100) startup OK.
You have successfully created the TimesTen full instance. Proceed to "Review the instance home directory and subdirectories" for next steps.
Create an instance interactively for Oracle Clusterware
You can run the ttInstanceCreate
utility interactively to create an instance and enable TimesTen Replication with Oracle Clusterware.
When prompted for the path to the Oracle Clusterware installation, you can either provide it or skip it. If you skip it, you can specify the path later using the ttInstanceModify -crs
option. See "Change the Oracle Clusterware configuration for an instance" for information.
This example provides the path to the Oracle Cluster installation as /u01/app/
crs_releasedir
/grid
, where crs_releasedir
is a variable for the CRS release (for example, if the CRS release is 19.1.0
, you could substitute, 19.1.0
, such that the path would be /u01/app/19.1.0/grid
).
There must be a valid Oracle Clusterware installation in the specified directory.
In this example, either the values entered or the defaults chosen are shown in bold.
%installation_dir
/tt22.1.1.10.0/
bin/ttInstanceCreate NOTE: Each TimesTen instance is identified by a unique name. The instance name must be a non-null alphanumeric string, not longer than 255 characters. Please choose an instance name for this installation? [ tt221 ] crsinstance Instance name will be 'crsinstance'. Is this correct? [ yes ] yes Where would you like to install the crsinstance instance of TimesTen? [ /home/oracle ] /u02/ttinstances Creating instance in /u02/ttinstances/crsinstance ... NOTE: If you are configuring TimesTen for use with Oracle Clusterware, the daemon port number must be the same across all TimesTen installations managed within the same Oracle Clusterware cluster. NOTE: All installations that replicate to each other must use the same daemon port number that is set at installation time. The daemon port number can be verified by running 'ttVersion'. The default port number is 6624. Do you want to use the default port number for the TimesTen daemon? [ yes ] The daemon will run on the default port number (6624). INFO: installation group ownership (ttVersion) is 'oinstall' In order to use the cache features in any TimesTen databases created within this instance, you must set a value for the TNS_ADMIN environment variable. It can be left blank, and a value can be supplied later using <install_dir>/bin/ttInstanceModify. Please enter a value for TNS_ADMIN (s=skip)? [ ] s What is the TCP/IP port number that you want the TimesTen Server to listen on? [ 6625 ] Would you like to use TimesTen Replication with Oracle Clusterware? [ no ] yes A Clusterware installation was detected in /u01/app/crs_releasedir
/grid Please provide the path to the Oracle Clusterware installation on this machine (s=skip)? [ /u01/app/crs_releasedir/grid ] NOTE: The TimesTen Clusterware agent port must be the same on all nodes of the cluster. Please refer to the TimesTen documentation for additional information. Please enter a port number for the TimesTen Clusterware agent? [ 3574 ] Executing '/u01/app/crs_releasedir/grid/bin/olsnodes' ... Oracle Clusterware is currently configured on the following nodes : 1. tthost1 2. tthost2 NOTE: By default, all of the nodes listed above will be added to the TimesTen Replication with Oracle Clusterware configuration. You can also specify your own list of nodes based on the list above. Would you like to specify a node list for TimesTen Replication with Oracle Clusterware? [ no ] NOTE: The TimesTen daemon startup/shutdown scripts have not been installed. The startup script is located here : '/u02/ttinstances/crsinstance/startup/tt_crsinstance' Run the 'setuproot' script : /u02/ttinstances/crsinstance/bin/setuproot -install This will move the TimesTen startup script into its appropriate location. The 22.1 Release Notes are located here : '/u02/tt22.1.1.10.0/README.html' Starting the daemon ... TimesTen Daemon (PID: 11839, port: 6624) startup OK.
Note:
The Oracle Clusterware installation was detected by TimesTen. The location merely had to be confirmed, not entered.
Review the instance home directory and subdirectories
You can review the instance home directory and subdirectories for informational purposes. When you create an instance, each instance includes these subdirectories under $TIMESTEN_HOME
(Not all of the subdirectories are included in this list):
-
bin
: TimesTen utilities and executables tailored and specific to the instanceThis includes
ttenv.sh
(orttenv.csh
), which sets environment variables appropriately for the TimesTen environment for your session, andsetuproot.sh
, which can be run as root to cause data instances to be automatically started whenever the operating system reboots.Note that
ttenv
also puts thebin
directory in your path. -
conf
: Contains thetimesten.conf
file, which is the TimesTen instance configuration file -
diag
: Diagnostic output, including the daemon log and error log -
info
: Working directory of the TimesTen daemon, containing persistent state about the TimesTen instance -
install
: Symbolic link referencing the installation associated with this instance. -
plsql
: Contains this subdirectory:-
utl_file_dir
: The only directory that can be read from or written to by PL/SQL blocks using theUTL_FILE
package
-
-
startup
: Contains a script that can be added to/etc/init.d
to cause the instance to be automatically started at system startup and stopped at system shutdown.
Configure Linux kernel parameters
Note:
If you have chosen systemd to automatically manage the TimesTen daemon, see "Using systemd to Manage a TimesTen Service" for details on configuring kernel parameters for systemd.Configure shmmax and shmall
You must configure Linux shared memory so that the maximum size of a shared memory segment (the shmmax
memory kernel parameter) is large enough to contain the size of the total shared memory segment for the database. In TimesTen Classic, the entire database resides in a single shared memory segment. There is also a second memory segment used for PL/SQL.
On Linux, a shared memory segment consists of pages, where the default page size is normally 4 kB (4096 bytes). You can verify the default page size by running the getconf
PAGESIZE
command:
% getconf PAGESIZE 4096
Configure these shared memory kernel parameters to control the size of the shared memory segment:
-
shmmax
: The maximum size of a single shared memory segment expressed in bytes. The value must be large enough to accommodate the size of the total shared memory segment for the database. -
shmall
: The total size of shared memory segments system wide expressed in pages. The value is expressed in multiples of the page size (4 kB) andshmall * pagesize
must be greater or equal to the value ofshmmax
. It is recommended that you set the value ofshmall
to less than or equal to the total amount of physical RAM. To display the total amount of physical memory, run the Linuxcat /proc/meminfo
command.
Use the ttShmSize
utility to determine the size of the shared memory segment. The ttShmSize
utility uses the values of the PermSize
, the TempSize
, the LogBufMB
and the Connections
connection attributes (for a specified database) to determine this size. See "ttShmSize" in Oracle TimesTen In-Memory Database
Reference for details on the ttShmSize
utility and see "PermSize", "TempSize", "LogBufMB", and "Connections" in Oracle TimesTen In-Memory Database
Reference for details on each connection attribute.
ttShmSize
utility with the -connStr
option to determine the size of the shared memory segment using the database1
DSN. Supply a PermSize
value of 32GB (32768 MB), a TempSize
value of 4 GB (4096 MB), a LogBufMB
value of 1 GB (1024 MB) and a Connections
value of 2048. % ttShmSize -connstr "DSN=database1;PermSize=32768;TempSize=4096;LogBufMB=1024;Connections=2048"
The required shared memory size is 39991547720 bytes.
Note:
-
The
-connStr
option of thettShmSize
utility requires that you have defined a DSN in either the user.odbc.ini
or the systemsys.odbc.ini
file. You may use any DSN. Note that for any connection attribute not specified in the-connStr
option,ttShmSize
uses the setting defined in either the user.odbc.ini
file or the systemsys.odbc.ini
file for the specified DSN. If the connection attribute is missing from both the-connStr
option and either the user.odbc.ini
file or thesys.odbc.ini
file,ttShmSize
uses the default value for the connection attribute. -
You can add a DSN to either the user
.odbc.ini
file of the user or the systemsys.odbc.ini
file. For example, to add thedatabase1
DSN to the user.odbc.ini
file of the current operating system user:% vi ~/.odbc.ini ... [database1]
To size shmmax
and shmall
:
Note:
-
The settings for
shmmax
andshmall
in these examples can be increased if there are other applications that require them to be greater. -
If you are unsure of the size of your database, you can set
shmmax
andshmall
to correspond to a percentage of the size of physical memory (such as 80%).
Configure HugePages
You can configure HugePages
for more efficient memory management.
Once configured, the memory allocated for HugePages
is taken from the total RAM on the Linux host and is not available for any other use. In addition, the HugePages
memory segment is automatically locked and cannot be swapped to disk.
To configure HugePages
, you need to know:
-
The maximum size of the shared memory segment for the database
-
The
HugePages
page size on your Linux host -
The group ID of the instance administrator
Using the examples in the "Configure shmmax and shmall" section, where the value of shmmax
value is 39,054,246 kB, and the "Create the TimesTen Users Group" section, where the group ID of the instanceadmin
user is 10000:
-
The size of the total shared memory segment is is 39,054,246 kB.
-
The
HugePages
page size is 2048 KB. (This value is fixed for each platform and is not configurable.)To determine the HugePages page size, run the Linux
cat /proc/meminfo|grep
Hugepagesize
command:% cat /proc/meminfo | grep Hugepagesize Hugepagesize: 2048 kB
-
The group ID is 10000.
To determine the group ID of the instance administrator, log in as the
instanceadmin
user, and run the Linuxid
command:% id uid=55000(instanceadmin) gid=10000(g10000)groups=10000(g10000)
To configure HugePages
:
Note:
-
Because
HugePages
must be allocated in contiguous available memory space, the requested allocation may not be granted, or may be only partially granted, until after the host is restarted. Check theHugePages_Total
andHugePages_Free
values from/proc/meminfo
. Restarting grants the full allocation, assuming enough memory is available in the host. -
The TimesTen PL/SQL shared memory segment consumes some of the configured HugePages allocation, determined by the value of the
PLSQL_MEMORY_SIZE
connection attribute. See "PLSQL_MEMORY_SIZE" in the Oracle TimesTen In-Memory Database Reference for more information. -
On Linux, the
HugePages
segment is automatically locked such that the memory segment is not a candidate to be swapped to disk. Therefore, if you configureHugePages
, you do not need to set theMemoryLock
connection attribute.
Modify the memlock settings
memlock
entries in the /etc/security/limits.conf
file control the amount of memory a user can lock. These entries are set at the system level and are different than the MemoryLock
connection attribute setting.
Note:
If you are using systemd to manage a TimesTen service, you must set theLimitMEMLOCK
setting in the systemd service unit configuration file. systemd ignores the values in the /etc/security/limits.conf
file. See "Using systemd to Manage a TimesTen Service" for details.
If HugePages
are configured, the memlock
values must be large enough to accommodate the size of the shared memory segment or the database will not be loaded into memory.
For example, for the instanceadmin
user, assuming a total shared memory segment size of 39,054,246 kB, set the memlock
entries to 39054246
:
Set the semaphore values
TimesTen has an upper bound on the maximum number of connections to the database. The database connections consist of:
-
User connections: established by user applications
-
System connections: established internally by TimesTen (set at 48 connections)
-
Other required connections (set at 107 connections)
Each of these connections is assigned one semaphore, such that the total semaphores for a database are:
Total semaphores = user connections (N) + system connections (48) + other required connections (107) Total semaphores = N + 155
The semaphore settings are located in the kernel.sem
configuration directive in /etc/sysctl.conf
:
kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI
where:
-
SEMMSL
is the maximum number of semaphores per array. This value is related to the maximum number of connections. Configure this value to be155
plus the number of simultaneous user connections. -
SEMMNS
is the maximum number of semaphores system wide. Use the formulaSEMMNS
= (SEMMNI
* SEMMSL
) as a guideline. However, in practice,SEMMNS
can be much less thanSEMMNI
* SEMMSL
. -
SEMOPM
is the maximum number of operations for eachsemop
call. -
SEMMNI
is the maximum number of arrays.
Follow these steps to configure the SEMMSL
and the SEMMNI
settings. Ensure that the user is root
:
Note:
If you are using replication, the Linux platform for each host on which the master databases reside must have similar kernel settings for shared memory and semaphores. Specifically, theSEMMSL
and SEMMNI
settings must be large enough on all hosts that participate in an active standby replication scheme before the duplication is performed. In the event of a failover, the standby must be able to accommodate the active.
Set the SHMMNI parameter
The SHMMNI
value controls the number of shared memory segments that the host can create simultaneously. TimesTen creates a shared memory segment for the TimesTen database and a shared memory segment for PL/SQL. In addition, there is a small shared memory segment that is allocated for the duration of each client/server connection. This shared memory segment is created at connect time and is destroyed when the client/server connection is disconnected from the TimesTen database. There is one shared memory segment per client/server connection.
You must configure the SHMMNI
parameter setting to account for the number of client/server connections. Set SHMMNI
to a value that is greater than number of expected client/server connections. (Ensure to also take into account the TimesTen shared memory segment, the PL/SQL shared memory segment, and other programs that use shared memory.) As an example, if you expect there to be 8000
client/server connections, an appropriate value is 9000
or greater. A value of 9000
or greater is appropriate as TimesTen has system connections that are not included in the client/server connections count.
Follow these steps to configure the SHMMNI
setting. Ensure that the user is root
:
Note:
If you are using replication, the Linux platform for each host on which the master databases reside must have a similarSHMMNI
kernel setting. Specifically, the SHMMNI
setting must be large enough on all hosts that participate in an active standby replication scheme before the duplication is performed. In the event of a failover, the standby must be able to accommodate the active.
Start an instance automatically at system startup with System V init scripts
You have the option of having the TimesTen daemon started automatically at system startup and stopped automatically at system shutdown.
Note:
If you do not choose this option, the instance administrator controls the TimesTen daemon at all times.To enable this option, the root
user runs the TimesTen setuproot
script with the -install
option. The script is located in the timesten_home
/bin
directory. This script copies a set of scripts to the /etc/init.d
directory.
Recall that there is information about this in the ttInstanceCreate
output when it creates an instance. For example, for an instance named myinstance
:
NOTE: The TimesTen daemon startup/shutdown scripts have not been installed.
The startup script is located here :
'/swdir/TimesTen/ttinstances/myinstance/startup/tt_myinstance'
Run the 'setuproot' script :
/swdir/TimesTen/ttinstances/myinstance/bin/setuproot -install
This will move the TimesTen startup script into its appropriate location.
The setuproot
script operates according to the current setting of the TIMESTEN_HOME
environment variable, which indicates the instance home directory.
In this example, timesten_home
/bin
is the current directory of the root
user:
# echo$TIMESTEN_HOME
/swdir/TimesTen/ttinstances/myinstance #$TIMESTEN_HOME
/bin/setuproot -install Would you like to install the TimesTen daemon startup scripts into /etc/init.d? [ yes ] Copying /swdir/TimesTen/ttinstances/myinstance/startup/tt_myinstance to /etc/init.d Successfully installed the following scripts : /etc/init.d/tt_myinstance /etc/rc.d/rc0.d/K45tt_myinstance /etc/rc.d/rc1.d/K45tt_myinstance /etc/rc.d/rc2.d/S90tt_myinstance /etc/rc.d/rc3.d/S90tt_myinstance /etc/rc.d/rc5.d/S90tt_myinstance /etc/rc.d/rc6.d/K45tt_myinstance
Before you destroy the instance, root
should run setuproot -uninstall
.
# $TIMESTEN_HOME
/bin/setuproot -uninstall
Would you like to uninstall the TimesTen daemon startup scripts in /etc/init.d?
[ yes ]
Successfully deleted the following scripts :
/etc/rc.d/rc0.d/K45tt_myinstance
/etc/rc.d/rc1.d/K45tt_myinstance
/etc/rc.d/rc2.d/S90tt_myinstance
/etc/rc.d/rc3.d/S90tt_myinstance
/etc/rc.d/rc5.d/S90tt_myinstance
/etc/rc.d/rc6.d/K45tt_myinstance
/etc/init.d/tt_myinstance
Note:
If you do not run setuproot
-uninstall
before you destroy the instance, you must manually delete the files that were placed by setuproot
-install
.
Creating a TimesTen client instance
A TimesTen client instance can be used to connect to a database in either TimesTen Scaleout or in TimesTen Classic.
This is an example of creating a client instance. See "Client-only Installations and Instances" for detailed information about client-only installations and instance, including multiple examples.
Navigate to the installation_dir
/tt22.1.1.10.0/bin
area and run the ttInstanceCreate
utility, specifying the -clientonly
option. User input is shown in bold.
%installation_dir
/tt22.1.1.10.0/bin
/ttInstanceCreate -clientonly NOTE: Each TimesTen instance is identified by a unique name. The instance name must be a non-null alphanumeric string, not longer than 255 characters. Please choose an instance name for this installation? [ tt221 ] clientinstance1 Instance name will be 'clientinstance1'. Is this correct? [ yes ] Where would you like to install the clientinstance1 instance of TimesTen? [ /home/ttuser ] /scratch/ttuser Creating instance in /scratch/ttuser/clientinstance1 ... INFO: Mapping files from the installation to /scratch/ttuser/clientinstance1/install In order to use the cache features in any TimesTen databases created within this instance, you must set a value for the TNS_ADMIN environment variable. It can be left blank, and a value can be supplied later using <install_dir>/bin/ttInstanceModify. Please enter a value for TNS_ADMIN (s=skip)? [ ] s The 22.1 Release Notes are located here : '/installation_dir
/tt22.1.1.10.0/README.html'
Modifying an instance on Linux/UNIX
If you are using systemd as a TimesTen service, and you want to modify the instance, see "Using systemd to Manage a TimesTen Service" and "About modifying a TimesTen instance to enable or disable management by systemd" for details.
These sections discuss how to modify instances that do not use systemd as a TimesTen service:
For information on modifying an instance with systemd, see Using systemd to Manage a TimesTen Service
The ttInstanceModify utility
The ttInstanceModify
utility modifies the attributes of an instance. The instance that is modified is the instance that the $TIMESTEN_HOME
environment variable references. Run the ttInstanceModify
utility from the $TIMESTEN_HOME
/bin
directory.
For a full instance, you can modify all of these attributes. For a client-only instance, you can only modify the installation with which the instance is associated (-install
option):
-
TimesTen daemon port
-
TimesTen Server port for client/server
-
TNS_ADMIN
location fortnsnames.ora
-
Oracle Clusterware configuration
-
TimesTen installation with which the instance is associated
The utility then updates the timesten.conf
file accordingly.
Note:
The instance administrator cannot be modified.
Run the ttInstanceModify
with the -help
option to list the available options. See "ttInstanceModify" in the Oracle TimesTen In-Memory Database
Reference for detailed descriptions.
Modify an instance from information provided interactively
You can run ttInstanceModify
interactively if you do not specify any command-line options. In this case, the utility asks one by one if you want to change any of the supported options.
This example sets a new daemon port and server port. The values entered, or defaults chosen, are shown in bold:
% $TIMESTEN_HOME
/bin/ttInstanceModify
Instance Info
-------------
Name: myttinstance
Version: 22.1.1.10.0
Location: /swdir/TimesTen/ttinstances/myttinstance
Installation: /swdir/TimesTen/ttinstallations/fullinstall/tt22.1.1.10.0
Daemon Port: 28000
Server Port: 28001
Would you like to change the installation that this instance points to? [ no ]
The daemon for instance 'myttinstance' is currently configured to use port 28000.
Would you like to change this port? [ no ] yes
NOTE: If you are configuring TimesTen for use with Oracle Clusterware, the
daemon port number must be the same across all TimesTen installations
managed within the same Oracle Clusterware cluster.
Please enter a unique port number for the TimesTen daemon (<CR>=list)? [ ] 28050
Are you sure you want to change the daemon port number from 28000 to 28050?
[ yes ]
The server for instance 'myttinstance' is currently configured to use port 28001.
Would you like to change this port? [ no ] yes
Please enter a unique port number for the TimesTen server (<CR>=list)? [ ] 28060
Are you sure you want to change the server port number from 28001 to 28060?
[ yes ]
TNS_ADMIN for the instance 'myttinstance' is currently not set.
Would you like to change TNS_ADMIN for this instance? [ no ]
Would you like to configure TimesTen Replication with Oracle Clusterware? [ no ]
NOTE: The daemon will be stopped before changing port numbers.
Would you like to proceed with modifying the instance? [ yes ]
ttDaemonAdmin: daemon is not running
Changing the daemon port number ...
The daemon will now run on port 28050 ...
Changing the server port number ...
The server will now run on port 28060 ...
NOTE: You may need to modify your sys.ttconnect.ini file to
reflect the new server port. The sys.ttconnect.ini file is usually
located in your instance's conf directory, $TIMESTEN_HOME/conf.
Restarting the daemon ...
ttDaemonAdmin: daemon is not running
TimesTen Daemon (PID: 3072, port: 28050) startup OK.
The timesten.conf
file is updated accordingly:
# TimesTen Instance Configuration File ... daemon_port=28050 server_port=28060 ...
Note:
In interactive mode, the daemon is restarted automatically if you set the daemon port or server port, and you are prompted to restart the daemon if you set TNS_ADMIN
.
Change the daemon port for an instance
You can change the daemon port for an instance.
This example first runs the Linux/UNIX echo
command to display the instance in which $TIMESTEN_HOME
references. It then reviews the $TIMESTEN_HOME
/conf/timesten.conf
file to display the current port number. It then runs ttInstanceModify
to change the port number to 6524
. As a final step, the example shows the port number has been changed in the $TIMESTEN_HOME
/conf/timesten.conf
file.
% cat $TIMESTEN_HOME
/conf/timesten.conf
# TimesTen Instance Configuration File
# Created by ttInstanceCreate
# Commented values are default values
hostname=host1
timesten_release=22.1
instance_name=fullinstance1
daemon_port=6624
server_port=6625
admin_user=myadminuser
admin_uid=4738
group_name=timesten
instance_guid=9EEF0277-21C0-45F1-AB63-F0C5F48B6FE0
verbose=1
Run ttInstanceModify
to change the port number to 6524
.
% $TIMESTEN_HOME
/bin/ttInstanceModify -port 6524
The daemon will now run on port 6524 ...
You must restart the daemon for these changes to take effect.
Review the $TIMESTEN_HOME/conf/timesten.conf
file to ensure the port number is changed.
% cat $TIMESTEN_HOME
/conf/timesten.conf
# TimesTen Instance Configuration File
# Created by ttInstanceCreate
# Commented values are default values
hostname=host1
timesten_release=22.1
instance_name=fullinstance1
daemon_port=6524
server_port=6625
admin_user=myadminuser
admin_uid=4738
group_name=timesten
instance_guid=9D37C711-DF86-4007-A959-2AB52DA46035
verbose=1
Restart the daemon
% ttDaemonAdmin -start TimesTen Daemon (PID: 11635, port: 6524) startup OK.
Set or change the path to tnsnames.ora for an instance
You can use the ttInstanceModify
utility with the -tnsadmin
option to set or change the path to the tnsnames.ora
file. Specify the full path to the directory where the file is located. This is relevant for an application using TimesTen Cache, OCI, Pro*C/C++, or ODP.NET. For TimesTen Cache, this is for access to the Oracle Database. For TimesTen OCI, Pro*C/C++, and
To ensure that the TNS_ADMIN
setting is read by TimesTen as well as by user applications, also set the TNS_ADMIN
environment variable.
This example shows how to use the -tnsadmin
option. The current directory is timesten_home
:
% $TIMESTEN_HOME
/bin/ttInstanceModify -tnsadmin
/swdir/TimesTen/ttinstances/ttuser1instancelatest/instantclient
The value for TNS_ADMIN in
/swdir/TimesTen/ttinstances/ttuser1instancelatest/conf/timesten.conf
was changed to /swdir/TimesTen/ttinstances/ttuser1instancelatest/instantclient
Before you ran ttInstanceModify
, the $TIMESTEN_HOME
/conf/timesten.conf
file had no value for tns_admin
:
# TimesTen Instance Configuration File ... tns_admin= ...
After running ttInstanceModify
with the -tnsadmin
option, the $TIMESTEN_HOME
/conf/timesten.conf
file is updated:
# TimesTen Instance Configuration File ... tns_admin=/swdir/TimesTen/ttinstances/ttuser1instancelatest/instantclient ...
Change the Oracle Clusterware configuration for an instance
After creating an instance, you can use the ttInstanceModify -crs
option to change the TimesTen configuration to use Oracle Clusterware for TimesTen Replication and specify the full path to the Oracle Clusterware installation. As shown in the example, there is a prompt to confirm whether you want to configure TimesTen Replication with Oracle Clusterware and to enter or confirm the directory path to the installation. There must be a valid Oracle Clusterware installation in the specified directory.
This example illustrates how to use ttInstanceModify
with the -crs
option. The current directory is timesten_home
. User entries or defaults that are chosen are shown in bold.
This example provides the path to the Oracle Cluster installation as /u01/app/
crs_releasedir
/grid
, where crs_releasedir
is a variable for the CRS release (for example, if the CRS release is 19.1.0
, you could substitute, 19.1.0
, such that the path would be /u01/app/19.1.0/grid
).
% $TIMESTEN_HOME
/bin/ttInstanceModify -crs
Would you like to configure TimesTen Replication with Oracle Clusterware? [ no ]
yes
A Clusterware installation was detected in /u01/app/crs_releasedir/grid
Please provide the path to the Oracle Clusterware installation on this machine
(a=abort)?
[ /u01/app/crs_releasedir/grid ]
NOTE: The daemon port number must be the same across all TimesTen installations
part of the this Clusterware configuration.
Please enter a port number for the TimesTen Clusterware agent? [ 31006 ]
Executing '/u01/app/crs_releasedir/grid/bin/olsnodes' ...
Oracle Clusterware is currently configured on the following nodes :
1. tthost1
2. tthost2
NOTE: By default, all of the nodes listed above will be added to the TimesTen
Replication with Oracle Clusterware configuration. You can also
specify your own list of nodes based on the list above.
Would you like to specify a node list for TimesTen Replication with Oracle Clusterware? [ no ]
INFO: Modifying /u02/ttinstances/myinstance/conf/cluster.oracle.ini ...
Do you want to restart the daemon using the new configuration? [ yes ]
Restarting the daemon ...
ttDaemonAdmin: daemon is not running
TimesTen Daemon (PID: 30345, port: 31000) startup OK.
TimesTen Replication with Oracle Clusterware has been configured.
NOTE: Please run ttInstanceModify for all other TimesTen instances which are
part of the this Clusterware configuration.
Note:
The Oracle Clusterware installation was detected by TimesTen. The location merely had to be confirmed, not entered.
Associate an instance with a different installation (upgrade or downgrade)
You can use the ttInstanceModify -install
option to associate the instance with a different TimesTen installation. This is typically used to upgrade the instance to a new maintenance or patch release. It cannot be used to upgrade to a new major release (such as going from 18.1 to 22.1).
This example upgrades from the ttinstall
installation to the ttinstalllatest
installation. The current directory is timesten_home
for the ttuser1instance
instance.
Optional: Before running $TIMESTEN_HOME
/bin/
ttInstanceModify
, you can review the timesten_home
/install
directories and files to gain an understanding of the symbolic links that are defined.
Navigate to the timesten_home
/install
directory and run the Linux ls
-l
command to list the directories and the files within this directory. Note that symbolic links to the installation directory are defined for most of the files and the directories within this timesten_home
/install
directory. (In this example, swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0
is the installation directory.)
% cd timesten_home
/install
% ls -l
...
lrwxrwxrwx 1 ttuser1 timesten 56 Jun 28 11:13 3rdparty ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/3rdparty
lrwxrwxrwx 1 ttuser1 timesten 52 Jun 28 11:13 PERL ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/PERL
lrwxrwxrwx 1 ttuser1 timesten 59 Jun 28 11:13 README.html ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/README.html
lrwxrwxrwx 1 ttuser1 timesten 51 Jun 28 11:13 bin ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/bin
lrwxrwxrwx 1 ttuser1 timesten 52 Jun 28 11:13 grid ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/grid
lrwxrwxrwx 1 ttuser1 timestten 55 Jun 28 11:13 include ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/include
lrwxrwxrwx 1 ttuser1 timesten 52 Jun 28 11:13 info ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/info
drwxr-x--- 2 ttuser1 timesten 4096 Jun 28 11:13 lib
lrwxrwxrwx 1 ttuser1 timesten 55 Jun 28 11:13 network ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/network
lrwxrwxrwx 1 ttuser1 timesten 51 Jun 28 11:13 nls ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/nls
lrwxrwxrwx 1 ttuser1 timesten 61 Jun 28 11:13 oraclescripts ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/oraclescripts
lrwxrwxrwx 1 ttuser1 timesten 53 Jun 28 11:13 plsql ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/plsql
lrwxrwxrwx 1 ttuser1 timesten 55 Jun 28 11:13 startup ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/startup
lrwxrwxrwx 1 ttuser1 timesten 55 Jun 28 11:13 support ->
/swdir/TimesTen/ttinstallations/ttinstall/tt22.1.1.10.0/support
drwxr-x--- 3 ttuser1 timesten 4096 Jun 28 11:13 ttoracle_home
Now run $TIMESTEN_HOME
/bin/
ttInstanceModify
-install
to associate the ttuser1instance
instance with the new installation (/swdir/TimesTen/ttinstallations/ttinstalllatest/22.1.1.11.0
, in this example).
% $TIMESTEN_HOME
/bin/ttInstanceModify
/swdir/TimesTen/ttinstallations/ttinstalllatest/22.1.1.11.0
Instance Info (UPDATED)
-----------------------
Name: ttuser1instance
Version: 22.1.1.11.0
Location: /swdir/TimesTen/ttinstances/ttuser1instance
Installation: /swdir/TimesTen/ttinstallations/ttinstalllatest/22.1.1.11.0
Daemon Port: 21000
Server Port: 21001
The instance ttuser1instance now points to the installation in
/swdir/TimesTen/ttinstallations/ttinstalllatest/22.1.1.11.0
After running ttInstanceModify
, note the symbolic links within the $TIMESTEN_HOME
/install
directory point to the new installation directory.
% cd $TIMESTEN_HOME
/install
% ls -l
...
lrwxrwxrwx 1 ttuser1 timesten 55 Jun 28 13:07 3rdparty ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt/3rdparty
lrwxrwxrwx 1 ttuser1 timesten 51 Jun 28 13:07 PERL ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/PERL
lrwxrwxrwx 1 ttuser1 timesten 58 Jun 28 13:07 README.html ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/README.html
lrwxrwxrwx 1 ttuser1 timesten 50 Jun 28 13:07 bin ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/bin
lrwxrwxrwx 1 ttuser1 timesten 51 Jun 28 13:07 grid ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/grid
lrwxrwxrwx 1 ttuser1 timesten 54 Jun 28 13:07 include ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/include
lrwxrwxrwx 1 ttuser1 timesten 51 Jun 28 13:07 info ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/info
lrwxrwxrwx 1 ttuser1 timesten 57 Jun 28 13:07 kubernetes ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/kubernetes
drwxrwxr-x 2 ttuser1 timesten 4096 Jun 28 13:07 lib
lrwxrwxrwx 1 ttuser1 timesten 54 Jun 28 13:07 network ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/network
lrwxrwxrwx 1 ttuser1 timesten 50 Jun 28 13:07 nls ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/nls
lrwxrwxrwx 1 ttuser1 timesten 60 Jun 28 13:07 oraclescripts ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/oraclescripts
lrwxrwxrwx 1 ttuser1 timesten 52 Jun 28 13:07 plsql ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/plsql
lrwxrwxrwx 1 ttuser1 timesten 54 Jun 28 13:07 startup ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/startup
lrwxrwxrwx 1 ttuser1 timesten 54 Jun 28 13:07 support ->
/swdir/TimesTen/ttinstallations/ttinstalllatest/tt22.1.1.11.0/support
drwxrwxr-x 3 ttuser1 timesten 4096 Jun 28 13:07 ttoracle_home
Destroying an instance on Linux/UNIX
These sections discuss how to destroy an instance using the ttInstanceDestroy
utility:
The ttInstanceDestroy utility
The ttInstanceDestroy
utility destroys an existing instance. The instance that will be destroyed is based on the current setting of the TIMESTEN_HOME
environment variable, which indicates the instance home directory. Run the ttInstanceDestroy
utility that is located in the bin
directory of the associated installation. (For example, installation_dir
/tt22.1.1.10.0/bin
.)
Only the instance administrator (the user who created the instance) can destroy the instance.
Note:
There can be no existing connections to databases associated with the instance you are destroying.
Run the ttInstanceDestroy
utility with the -help
option to list the available options. See "ttInstanceDestroy" in Oracle TimesTen In-Memory Database
Reference for detailed descriptions.
Note:
The -force
option completes the operation without prompting for confirmation.
The ttInstanceDestroy
utility completes these steps:
-
Provides a reminder that if the TimesTen startup scripts for the instance were installed (by
root
), then they should be uninstalled (also byroot
) before the instance is destroyed.This refers to the
setuproot -install
andsetuproot -uninstall
commands. See "Start an instance automatically at system startup with System V init scripts" for information. -
Asks for confirmation to destroy the instance (unless
-force
is specified). -
Frees up the ports assigned to the instance.
Destroy an instance from information provided interactively
Use the ttInstanceDestroy
utility to destroy the instance interactively. Run the utility from the installation_dir
/tt22.1.1.10.0/bin
directory (the installation directory for the instance). Recall that the instance home directory (timesten_home
) contains a subdirectory (/install
) that is a symbolic link to the top-level directory of the instance's associated installation. See "Instance home" for information.
This example illustrates how to use the ttInstanceDestroy
utility to destroy an instance.
%installation_dir
/tt22.1.1.10.0/bin/t
tInstanceDestroy ** WARNING ** The uninstallation has been executed by a non-root user. If the TimesTen daemon startup scripts were installed, you must run $TIMESTEN_HOME/bin/setuproot -uninstall to remove them. If you proceed with this uninstallation, you will have to remove the startup scripts manually. ** WARNING ** All files in the directory: /scratch/ttuser/fullinstance1 will be removed, including any file that you or other users may have created. Are you sure you want to completely remove this instance? [ yes ] yes Installation will remove all the files from /scratch/ttuser/fullinstance1. Do you want to continue? [ yes ] NOTE: /scratch/ttuser/fullinstance1/info contains information related to the data store that have been created with this release. If you remove /scratch/ttuser/fullinstance1/info you will no longer be able to access your data stores, nor would you be able to restore nor migrate your data. NOTE: /scratch/ttuser/fullinstance1/conf contains information related to the instance configuration. /scratch/ttuser/fullinstance1 Removed The TimesTen instance fullinstance1 has been destroyed.
Copying an installation on Linux/UNIX
You can copy an installation to another host by copying the installation ZIP file from the source host to the target host and unzip it on that host. You can also use any suitable mechanism, such as the ZIP utility, to bundle an installation on the source host and then extract it into another location or onto another host. This might be useful, for example, if the original TimesTen distribution is not conveniently available. The copied installation is valid as long as the file permissions are maintained appropriately.
This example uses the ZIP utility to copy an installation between hosts:
On the target host, optionally run ttInstallationCheck
to verify the new copy of the installation.
From the directory you copied the installation into:
% installation_dir
/tt22.1.1.10.0/bin/ttInstallationCheck
This installation has been verified.
Complete example for installing and uninstalling TimesTen Classic
This example provides the procedure for creating an installation and for working with instances. This example assumes you have chosen the System V init mechanism. See About creating an instance on Linux/UNIX for details on the System V init mechanism.
Create the full installation
This example creates a full installation from the timesten2211100.server.linux8664.zip
distribution.
The operating system user that you designated as the instance administrator first creates the installation by downloading the TimesTen distribution on the host that will contain the instance. For example, download timesten2211100.server.linux8664.zip
.
This example then shows the steps to perform once the instance administrator downloads the distribution. See "Creating an installation on Linux/UNIX" for more information.
The example creates the installation1
installation directory and unzips the distribution into that directory.
% mkdir installation1 % cd installation1 % unzip /timesten2211100.server.linux8664.zip [...UNZIP OUTPUT...]
Create the full instance
Run the ttInstanceCreate
utility interactively to create a full instance from the installation in /installation1
. The /installation1
directory is referred to as /installation_dir
. See "Creating an instance on Linux/UNIX: Basics" for information.
This example illustrates how to create a full instance interactively. Navigate to the /bin
area of the installation directory and run the ttInstanceCreate
utility located in that directory. The ttInstanceCreate
utility must be run from the installation directory. User input is shown in bold.
% installation_dir
/tt22.1.1.10.0/bin
/ttInstanceCreate NOTE: Each TimesTen instance is identified by a unique name. The instance name must be a non-null alphanumeric string, not longer than 255 characters. Please choose an instance name for this installation? [ tt221 ] fullinstance1 Instance name will be 'fullinstance1'. Is this correct? [ yes ] Where would you like to install the fullinstance1 instance of TimesTen? [ /home/ttuser ] /scratch/ttuser Creating instance in /scratch/ttuser/fullinstance1 ... INFO: Mapping files from the installation to /scratch/ttuser/fullinstance1/install NOTE: If you are configuring TimesTen for use with Oracle Clusterware, the daemon port number must be the same across all TimesTen installations managed within the same Oracle Clusterware cluster. NOTE: All installations that replicate to each other must use the same daemon port number that is set at installation time. The daemon port number can be verified by running 'ttVersion'. The default port number is 6624. Do you want to use the default port number for the TimesTen daemon? [ yes ] The daemon will run on the default port number (6624). In order to use the cache features in any TimesTen databases created within this instance, you must set a value for the TNS_ADMIN environment variable. It can be left blank, and a value can be supplied later using <install_dir>/bin/ttInstanceModify. Please enter a value for TNS_ADMIN (s=skip)? [ ] s What is the TCP/IP port number that you want the TimesTen Server to listen on? [ 6625 ] Would you like to use TimesTen Replication with Oracle Clusterware? [ no ] NOTE: The TimesTen daemon startup/shutdown scripts have not been installed. The startup script is located here : '/scratch/ttuser/fullinstance1/startup/tt_fullinstance1' Run the 'setuproot' script : /scratch/ttuser/fullinstance1/bin/setuproot -install This will move the TimesTen startup script into its appropriate location. The 2211100 Release Notes are located here : '/installation_dir
/tt22.1.1.10.0/README.html' Starting the daemon ... TimesTen Daemon (PID: 20396, port: 6624) startup OK.
Source the environment variables
You must set the environment variables to make use of TimesTen. In particular, ensure TIMESTEN_HOME
is set. See "Setting environment variables for TimesTen" for information.
This example illustrates how to source the environment variables. Navigate to the /bin
area of the instance directory (instance home) and source the ttenv
script. This example uses ttenv.csh
.
% source /scratch/ttuser/fullinstance1/bin/ttenv.csh [...ttenv.csh output...]
Run the Linux/UNIX printenv
command to verify the TIMESTEN_HOME
variable is set.
% printenv TIMESTEN_HOME /scratch/ttuser/fullinstance1
Configure Linux kernel parameters
After you create the full instance and source the environment variables, you must configure Linux kernel parameters. See "Configure Linux kernel parameters" for details.
Run the ttStatus utility
You can optionally run the ttStatus
utility to verify that the TimesTen daemon is running. See "ttStatus" in the Oracle TimesTen In-Memory Database
Reference for information on this utility.
This example illustrates how to use the ttStatus
utility to verify that the daemon is running.
% ttStatus TimesTen status report... Daemon pid 20396 port 6624 instance database1 TimesTen server pid 20403 started on port 6625 ------------------------------------------------------------------------ ------------------------------------------------------------------------ Accessible by group g900 End of report
Create and connect to the database
This example illustrates how to create and connect to the database. It uses the Linux vi
editor to modify the $TIMESTEN_HOME
/conf/sys.odbc.ini
file to add the database1
DSN and specify connection attributes for the DSN. The example then runs the ttIsql
utility to create and connect to the database1
DSN. As a final step, the example runs a simple query.
For information on DSNs, see "Specifying Data Source Names to identify TimesTen databases" in the Oracle TimesTen In-Memory Database Operations Guide. For information on connection attributes, see "Connection Attributes" in the Oracle TimesTen In-Memory Database Reference.
% vi $TIMESTEN_HOME
/conf/sys.odbc.ini
[database1]
DataStore=/disk1/databases/database1
LogDir=/disk2/logs
DatabaseCharacterSet=AL32UTF8
PermSize=1280
TempSize=640
LogBufMB=1024
After saving the sys.odbc.ini
file and exiting from the vi
editor, run the ttIsql
utility to create the database and connect to the database1
DSN. (A database is created when the instance administrator first connects to the newly created database1
DSN).
% ttIsql database1
Copyright (c) 1996, 2023, Oracle and/or its affiliates. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
connect "DSN=database1";
Connection successful: DSN=database1;UID=ttuser;DataStore=/databases/database1;
DatabaseCharacterSet=US7ASCII;ConnectionCharacterSet=US7ASCII;
DRIVER=fullinstancedir/fullinstance1/install/lib/libtten.so;
(Default setting AutoCommit=1)
Run a simple query.
Command> SELECT * FROM dual; < X > 1 row found.
Run ttStatus to show connections
You can run ttStatus
to show connections to the database1
database. See "ttStatus" in the Oracle TimesTen In-Memory Database
Reference for information on this utility.
This example runs the ttStatus
utility to show the connections to the database.
% ttStatus TimesTen status report... Daemon pid 20396 port 6624 instance database1 TimesTen server pid 20403 started on port 6625 ------------------------------------------------------------------------ ------------------------------------------------------------------------ Data store /databases/database1 Installation will expire after... Daemon pid 20396 port 6624 instance database1 TimesTen server pid 20403 started on port 6625 There are 14 connections to the data store Shared Memory KEY 0x02100497 ID 4292609 PL/SQL Memory KEY 0x03100497 ID 4325378 Address 0x5000000000 Type PID Context Connection Name ConnID Process 20766 0x00007f06f4ccf010 database1 1 Subdaemon 20401 0x00007f92b40008c0 Checkpoint 2041 Subdaemon 20401 0x00007f92bc0008c0 Monitor 2042 Subdaemon 20401 0x00007f92c40008c0 Deadlock Detector 2044 Subdaemon 20401 0x00007f92dc0008c0 Flusher 2045 Subdaemon 20401 0x00007f92e485d010 Garbage Collector 2036 Subdaemon 20401 0x00007f92e4c78010 XactId Rollback 2037 Subdaemon 20401 0x00007f92e5194010 IndexGC 2035 Subdaemon 20401 0x00007f92e56b0010 HistGC 2040 Subdaemon 20401 0x00007f92e5bcc010 AsyncMV 2038 Subdaemon 20401 0x00007f92e60e8010 Log Marker 2039 Subdaemon 20401 0x00007f92e6503010 Aging 2043 Subdaemon 20401 0x00007f92e77ca010 Rollback 2046 Subdaemon 20401 0x00007f92e7be5010 Manager 2047 Replication policy : Manual Cache Agent policy : Manual PL/SQL enabled. ------------------------------------------------------------------------ Accessible by group g900 End of report
Modify the full instance
This example runs the ttInstanceModify
utility to modify the daemon port number. The instance that is modified is the one that $TIMESTEN_HOME
references. Running this command:
- Prompts you for confirmation
- Stops the TimesTen daemon for the instance
- Edits the
$TIMESTEN_HOME/conf/timesten.conf
file with the updated information - Starts the TimesTen daemon for the instance
See "Modifying an instance on Linux/UNIX" for details.
This example runs the Linux/UNIX echo
command to display the instance that $TIMESTEN_HOME
references and reviews the $TIMESTEN_HOME/conf/timesten.conf
file to check the setting of the current port number. It then runs ttInstanceModify
to change the port number to 6524
. The example then reviews the $TIMESTEN_HOME/conf/timesten.conf
file to ensure the port number has been changed. As a final step, the daemon is started.
% echo $TIMESTEN_HOME
/scratch/ttuser/fullinstance1
% cat $TIMESTEN_HOME
/conf/timesten.conf
# TimesTen Instance Configuration File
# Created by ttInstanceCreate
# Commented values are default values
hostname=host1
timesten_release=22.1
instance_name=fullinstance1
daemon_port=6624
server_port=6625
admin_user=myadminuser
admin_uid=4738
group_name=timesten
instance_guid=9EEF0277-21C0-45F1-AB63-F0C5F48B6FE0
verbose=1
Run ttInstanceModify
to change the port number to 6524
.
% $TIMESTEN_HOME
/bin/ttInstanceModify -port 6524
The daemon will now run on port 6524 ...
You must restart the daemon for these changes to take effect.
Review the $TIMESTEN_HOME/conf/timesten.conf
file to ensure the port number is changed. See "Instance configuration file (timesten.conf)" for information on this file.
% cat $TIMESTEN_HOME/conf/timesten.conf
# TimesTen Instance Configuration File
# Created by ttInstanceCreate
# Commented values are default values
hostname=host1
timesten_release=22.1
instance_name=fullinstance1
daemon_port=6524
server_port=6625
admin_user=myadminuser
admin_uid=4738
group_name=timesten
instance_guid=9D37C711-DF86-4007-A959-2AB52DA46035
verbose=1
Restart the daemon
% ttDaemonAdmin -start -force TimesTen Daemon (PID: 11635, port: 6524) startup OK.
Destroy the full instance
You use the ttInstanceDestroy
utility interactively to destroy the instance. This example runs the utility without options. You must run this utility from the bin
area of the installation directory. See "Destroying an instance on Linux/UNIX" for information.
% installation_dir/tt22.1.1.10.0/bin/ttInstanceDestroy
** WARNING **
The uninstallation has been executed by a non-root user.
If the TimesTen daemon startup scripts were installed,
you must run $TIMESTEN_HOME/bin/setuproot -uninstall
to remove them. If you proceed with this uninstallation, you
will have to remove the startup scripts manually.
** WARNING **
All files in the directory:
/scratch/ttuser/fullinstance1
will be removed, including any file that you or other users
may have created.
Are you sure you want to completely remove this instance? [ yes ] yes
Installation will remove all the files from /scratch/ttuser/fullinstance1.
Do you want to continue? [ yes ]
NOTE: /scratch/ttuser/fullinstance1/info contains information
related to the data store that have been created with this release.
If you remove /scratch/ttuser/fullinstance1/info
you will no longer be able to access your data stores,
nor would you be able to restore nor migrate your data.
NOTE: /scratch/ttuser/fullinstance1/conf contains information
related to the instance configuration.
/scratch/ttuser/fullinstance1 Removed
The TimesTen instance fullinstance1 has been destroyed.
Delete the installation
You can delete the installation. See "Deleting an installation on Linux/UNIX" for details.
Installing Oracle Clusterware for use with TimesTen
To install Oracle Clusterware, see "Oracle Clusterware" in the Oracle Database documentation. Also see "Using Oracle Clusterware to Manage Active Standby Pairs" in the Oracle TimesTen In-Memory Database Replication Guide.
Follow these recommendations:
-
Create an NFS share to be used for both OCR and the voting disk. Specific NFS parameters are required so that the NFS share can be used as a voting disk.
-
Do not install in a shared Oracle home, as this does not allow rolling upgrades of Oracle Clusterware. Instead, each compute node should have its own installation of Clusterware.
-
Install Clusterware on each compute node. The path to the Clusterware installation must be the same on each compute node. Therefore, it is required to set up a directory structure that allows each compute node to use the same path to access its own Clusterware installation.
-
On the shared storage, a separate directory exists for each compute node:
-
For compute node 1, the directory is:
/export/compute_node_1/general
-
For compute node 2, the directory is:
/export/compute_node_2/general
-
For compute node
n
, the directory is:/export/compute_node_n/general
-
-
Use NFS mount to map the node specific directory to the same path on each compute node:
-
On host 1, do as follows.
mkdir -p /swdir/oracle mount storage-server:/export/compute_node_1/general /swdir/oracle
-
On host 2, do as follows.
mkdir -p /swdir/oracle mount storage-server:/export/compute_node_2/general /swdir/oracle
-
On host
n
, do as follows.mkdir -p /swdir/oracle mount storage-server:/export/compute_node_n/general /swdir/oracle
-
-
On each host: Install Oracle Clusterware in
/swdir/oracle/crs
.
-