Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 Server Administration Documentation | 2025.1

# Target server setup for the read-only replica

On the target server The immediately upstream server for replica servers, edge servers, standby servers, proxies and brokers. See also 'upstream server' and 'central server'. that we name london in this example, configure the read-only replica. In this example, we name the read-only replica readonly-1667 because we will configure it to use port 1667:

    p4 -u super server readonly-1667

A default server spec appears.

## Prerequisite

The steps on this page assume you have logged into the target server as the P4 user with the access level of `super`. See Permission levels and access rights in the `p4 protect` topic of P4 CLI Reference. That user can have any name, but for convenience the examples use `super`:

`p4 -u super login`

## Spec configuration

On the target server, configure the server spec for the read-only replica by adding some configurables and setting their values. In this example, line 1 shows the ServerID is readonly-1667, and line 4 shows its Address as replica:1667, with the port number following the read-only replica host name of replica with a colon (:) separator.

Copy

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ServerID:    readonly-1667
    Name:        readonly-1667
    Type:        server
    Services:    replica
    Address:    replica:1667
    DistributedConfig:
        db.replication=readonly
        lbr.replication=readonly
        lbr.autocompress=1
        startup.1=pull -i 1
        startup.2=pull -u -i 1
        startup.3=pull -u -i 1
        P4TARGET=london:1666
        serviceUser=service
        monitor=1 # optional but required if using the 'p4 monitor show' command
        journalPrefix=/p4/journals/read-only-replica # recommended
        P4TICKETS=/p4/.p4tickets # recommended
        P4LOG=/p4/logs/read-only-replica.log # recommended
    Description:
           Read-only replica pointing to london:1666

Regarding this configuration:

- For the optional fields, you can use your own naming conventions.
- For the Address field, see Communicating port information.
- The DistributedConfig: section might contain fields starting any#, such as

  any#P4LOG=perforce.log

  any#serverlog.file.2=logs/commands.csv

  These are options configured on the target server that, by default, apply to any server for which it is a target server. To override such a configurable for the replica, add it before or after the fields containing any#

  For example:

  any#P4LOG=perforce.log

  any#serverlog.file.2=logs/commands.csv

  P4LOG=perforce.read-only.log

  serverlog.file.2=logs/my-subdirectory/commands.csv

## Service user creation

In replicated and multi-server environments, a service user is required. See p4 user in the P4 CLI Reference.

1. On the target server, create the service user for the replication service. For example:

       p4 -u super user -f service

   The default user specification opens in your default editor. To make this user be of type service, add the following line:

       Type: service

2. Save the user specification and exit your default editor.

3. Use the p4 group command to create a group for your service users and set the value of the timeout field. To avoid service users being logged out, consider using unlimited as the Timeout value. See Tickets and timeouts for service users.

4. Set the service group protections to `super` in your protections table. See Service users.

5. Set the level of security to 3 or higher on the target server. See Server security levels.
   For example,
   $ p4 -u super configure set security=4
6. Ensure the service user is protected with a password:
   $ p4 -u super passwd service

## Next step

Create the read-only replica

Your search for returned results